#JAVA#面向对象(多态3)
package 多态;
/*
多态的弊端:
不能使用子类的特有功能
*/
class Fu{
public void show() {
System.out.println("show Fu");
}
}
class Zi extends Fu{
public void show() {
System.out.println("show Zi");
}
public void method() {
System.out.println("method Zi");
}
}
class DuoTaiDemo {
public static void main(String args[]) {
Fu f=new Zi();
f.show();
//f.method();
}
}
package 多态;
/*
多态的弊端:
不能使用子类的特有功能
我想使用子类的特有的功能,如何实现
A:创建子类对象调用方法即可(可以,但是很多时候不合理,而且,太占内存)
B:把父类的引用强制转换为子类的引用(向下转型)
对象间的转型问题:
向上转型:
Fu f=new Zi();
向下转型:
Zi z=(Zi)f; //要求该f必须是能转换为Zi的
*/
class Fu{
public void show() {
System.out.println("show Fu");
}
}
class Zi extends Fu{
public void show() {
System.out.println("show Zi");
}
public void method() {
System.out.println("method Zi");
}
}
class DuoTaiDemo {
public static void main(String args[]) {
Fu f=new Zi();
f.show();
//f.method();
Zi z=new Zi();
//z.method();
//把父的引用赋值给子的引用
z=(Zi)f;
z.show();
z.method();
}
}