0
点赞
收藏
分享

微信扫一扫

面向对象_多态中向上转型和向下转型


/*
多态的弊端:
不能使用子类的特有功能。

我就想使用子类的特有功能?行不行
行。

怎么用呢?
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 DouTaiDemo4{
public static void main(String[] args){
//测试
Fu f = new Zi();
f.show();
//f.method();

//创建子类对象
//Zi z = new Zi();
//z.show();
//z.method();

//能够把子类赋值给父类,那么能不能把父类的引用赋值给子类的引用呢?
//如果可以,格式如下:
Zi z = (Zi)f;
z.show();
z.method();
}
}


举报

相关推荐

0 条评论