java 从零开始,学习笔记之基础入门<抽象类_接口_多态>(十三)(三)

2014-11-24 08:34:27 · 作者: · 浏览: 2
n();
// }
//
// public void show(Man m){
// m.run();
// }
public void show(Person p){
p.run();
}
public static void main(String[] args) {
new Test().show(new Girl());
new Test().show(new Boy());
new Test().show(new Man());
}
}
对象造型(casting)
所谓对象造型就是对象间的相互转换,但是相互转换的对象之间要存在关系
对象造型分二类:
package com.ibm.casting;
public class Father {
}
package com.ibm.casting;
public class Son extends Father{
}
自动造型:由小转大 由子类转父类
//自动造型也成隐式转换
//对象的造型就是对象的相互转换,在此处就是Father和Son类的相互转换
//自动造型将子类的对象转换成父类
// Father f = new Son();
// System.out.println(f);
强制造型:由大转小 由父类转子类
//强制造型将父类对象转换成子类
//如果你想强制将父类对象转换成子类的对象,那么你必须先将子类的对象转换成父类的对象
//再将转换之后的父类对象强制转换成子类对象
//如果直接将父类强制转换成子类对象,会报类转换异常
Father f = new Son();
Son s = (Son) f;
System.out.println(s);
instanceof
// instanceof 关键字用来判断创建的对象是否是某一个类的对象
//1.通过隐式转换将子类对象转换成父类对象,转换之后的对象
// Father f = new Son();
// Father f = null;
// Son s = new Son();
// f = s;
// System.out.println(f instanceof Father);
// System.out.println(f instanceof Son);
//
// Son s1 = (Son)f;
// System.out.println(s1 instanceof Son);
// System.out.println(s1 instanceof Father);