
08-02 Java语言基础(多态中向上转型和向下转型、多态的好处和弊端)
发布日期:2021-05-06 23:59:22
浏览次数:25
分类:精选文章
本文共 1757 字,大约阅读时间需要 5 分钟。
基本数据类型自动提升和强制类型转换
int i = 10;byte b = 20;i = b; //自动类型提升b = (byte)i; //强制类型转换
向上转型和向下转型
Person P = new SuperMan(); //向下转型SuperMan sm = (SuperMan)P; //向上转型sm.fly()
多态的好处和弊端
好处:
- 提高代码的维护性(继承保证)(在继承的类里面改一下就好了)
- 提高代码的扩展性(多态保证)(定义一个父类,随着子类的不同执行不同的行为)
public class Test01 { public static void main(String[] args){ Animal cat = new Cat(); Animal dog = new Dog();// Cat c1 = (Cat) c;// c1.catchMouse(); method(cat); method(dog); } public static void method(Animal a){ a.eat(); if(a instanceof Cat){ //instanceof 判断前面的引用是否是后面的数据类型 ((Cat) a).catchMouse(); }else if(a instanceof Dog){ ((Dog) a).sleep(); } }}class Animal{ public void eat(){ System.out.println("动物吃东西"); }}class Cat extends Animal{ public void eat(){ System.out.println("猫吃鱼"); } public void catchMouse(){ System.out.println("猫捉老鼠"); }}class Dog extends Animal{ public void eat(){ System.out.println("狗吃肉"); } public void sleep(){ System.out.println("狗睡觉"); }}
面试题
看下面的程序是否有问题:
public class Test02 { public static void main(String[] args){ A a = new B(); a.show(); //爱 B b = new C(); b.show(); //你 }}class A { public void show(){ show2(); } public void show2(){ System.out.println("我"); }}class B extends A{ public void show2(){ //a.show(), 这里执行的是子类的show2() System.out.println("爱"); }}class C extends B{ public void show(){ super.show(); //和上例一样,执行的是子类的show2() } public void show2(){ System.out.println("你"); }}
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月25日 02时52分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Elasticsearch Web管理工具
2021-05-09
Git 配置SSH公钥、私钥
2021-05-09
极客时间离线课堂
2021-05-09
Spring Session
2021-05-09
koa2 中间件里面的next到底是什么
2021-05-09
在create-react-app创建的项目下允许函数绑定运算符
2021-05-09
博客园新闻频道开始公开测试
2021-05-09
评论表聚集索引引起的评论超时问题
2021-05-09
博客园上海俱乐部4月份活动通知邀请函已经发出!
2021-05-09
上周热点回顾(5.24-5.30)
2021-05-09
Internet Explorer 10 专题上线
2021-05-09
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
2021-05-09
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
2021-05-09
上周热点回顾(12.31-1.6)
2021-05-09
上周热点回顾(1.21-1.27)
2021-05-09
上周热点回顾(6.3-6.9)
2021-05-09
上周热点回顾(8.12-8.18)
2021-05-09
【故障公告】升级阿里云 RDS SQL Server 实例故障经过
2021-05-09
蹒跚来迟:新版博客后台上线公测
2021-05-09
上周热点回顾(9.16-9.22)
2021-05-09