代码改变世界

关于多态

2017-05-23 21:29  木偶米  阅读(143)  评论(0编辑  收藏  举报

在子类继承父类全部的方法情况下,不同的子类都要实现,可以用多态实现,节省时间和内存;

public static void main(String[] args){

c C=new c(2.0,3.0);

mm(C);//引用mm的方法,mm方法自动转换!

}

//实现父类的方法
public static void mm(A a){
a.zhuanchang();
a.mianj();

 

多态下的强制类型转换:

如果子类用父类没有的函数。在多态应用下就可以用强制类型转换;

父类 B=new 子类();

子类 A=(子类)B;

A.方法();

Animal a = new Mouse("老鼠"); //多态
//调用子类特有的方法
Mouse m = (Mouse)a; //强制类型转换
m.dig();

public static void main(String[] args)
{

Mouse m = new Mouse("米老鼠");
Fish f = new Fish("草鱼");

print(f);

}


//需求: 定义一个函数可以接收任意类型的动物对象,在函数内部要调用到动物特有的方法。
public static void print(Animal a){ // Animal a = new Mouse("米老鼠");
if(a instanceof Fish){
Fish f = (Fish)a;
f.bubble();
}else if(a instanceof Mouse){
Mouse m = (Mouse)a;
m.dig();
}