为了账号安全,请及时绑定邮箱和手机立即绑定

多态的好处 学习笔记

标签:
Java

  • A:多态的好处

    • a:提高了代码的维护性(继承保证)

    • b:提高了代码的扩展性(由多态保证)

  • B:案例演示

    • 多态的好处

    • 可以当作形式参数,可以接收任意子类对象

  • C:多态的弊端

    • 不能使用子类的特有属性和行为。

class Demo4_Animal {    public static void main(String[] args) {        //Cat c1 = new Cat();        //c1.eat();        method(new Cat());        method(new Dog());        //Animal a = new Cat();         开发的是很少在创建对象的时候用父类引用指向子类对象,直接创建子类对象更方便,可以使用子类中的特有属性和行为    }    //Cat c = new Dog();狗是一只猫,这是错误的    /*public static void method(Cat c) {                    c.eat();    }    public static void method(Dog d) {        d.eat();    }*/    //如果把狗强转成猫就会出现类型转换异常,ClassCastException    public static void method(Animal a) {   //当作参数的时候用多态最好,因为扩展性强        //关键字 instanceof 判断前边的引用是否是后边的数据类型        if (a instanceof Cat) {            Cat c = (Cat)a;            c.eat();            c.catchMouse();        }else if (a instanceof Dog) {            Dog d = (Dog)a;            d.eat();            d.lookHome();        }else {            a.eat();        }    }}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 lookHome() {        System.out.println("看家");    }}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
39
获赞与收藏
243

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消