1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java多态上转下_(转)java的多态(向上转型 向下转型)

java多态上转下_(转)java的多态(向上转型 向下转型)

时间:2020-07-02 03:17:54

相关推荐

java多态上转下_(转)java的多态(向上转型 向下转型)

在我的明白:java的向上和向下转型可以看成是类型的转换。

————————————————

版权声明:本文为CSDN博主「ldsh304」的原创文章,遵照CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:/ldsh304/java/article/details/77622245

public classPerson {public voideat(){

System.out.println("Person eatting...");

}public voidsleep() {

System.out.println("Person sleep...");

}

}public class Superman extendsPerson{public voideat() {

System.out.println("Superman eatting...");

}public voidfly() {

System.out.println("Superman fly...");

}

}

测试向上转型的主方式:

public classMain {public static voidmain(String[] args) {

Person person= newSuperman();

person.sleep();//挪用的是父类person的方式

person.eat(); //挪用的是Superman内里的eat方式,Superman重写了Person父类的方式//person.fly();//报错了,丢失了Superman类的fly方式

}

}

运行的效果:

Person sleep…

Superman eatting…

***剖析:***当在执行Person person = new Superman()时,我们来看看它的内存存储:

今后图我们可以看出 向上转型会丢失子类的新增方式,同时会保留子类重新的方式。

测试向下转型的主方式:

public classMain {public static voidmain(String[] args) {

Person person= newSuperman();

Superman s= (Superman)person; //向下转型

s.sleep();

s.fly();

s.eat();

}

}

运行的效果:

Person sleep…

Superman fly…

Superman eatting…

***剖析:***当在执行Superman s = (Superman)person;时,我们来看看他们的内存存储:

在这里我们看出 向下转型可以获得子类的所有方式(包罗父类的方式)。

原文链接:/NuoChong/p/12890812.html

本站声明:网站内容来源于网络,若有侵权,请联系我们,我们将及时处理。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。