多态中的转型

来源:互联网 发布:python 安装xpath 编辑:程序博客网 时间:2024/06/05 04:12

多态中的转型

A:向上转型

从子到父,父类引用指向子类对象

B:向下转型

从父到子,父类引用转为子类对象

/*多态的弊端:不能使用子类的特有功能。我就想使用子类的特有功能?行不行?行。怎么用呢?两种方法A方法:创建子类对象调用方法即可。(可以,但是很多时候不合理。而且,太占内存了)  //创建子类对象  Zi z = new Zi();  z.show();  z.method();B方法:把父类的引用强制转换为子类的引用。(专业名词:向下转型)   Fu f = new Zi();   Zi z = (Zi)f;   z.show();   z.method();对象间的转型问题:向上转型: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 DuoTaiDemo4 {public static void main(String[] args) {//测试Fu f = new Zi();f.show();  //show zi//f.method();报错//方法一:创建子类对象//Zi z = new Zi();//z.show();   //show zi//z.method(); //method zi//你能够把子的对象赋值给父亲,那么我能不能把父的引用赋值给子的引用呢?//方法二,如下:Zi z = (Zi)f;z.show();  //show ziz.method();//method zi}}

1 0