多态&强制类型转换&抽象类和接口

本文探讨了Java中的多态性,强调了多态存在的必要条件:继承、重写和父类引用子类对象。接着,解释了抽象类和抽象方法的概念,指出抽象类不能实例化,子类必须实现抽象方法或自身也成为抽象类。最后,介绍了接口的特性,它是极度抽象的类型,类可以通过implements关键字遵循多个接口,并必须实现接口的所有方法。
摘要由CSDN通过智能技术生成

多态&强制类型转换&抽象类和接口

1.多态
  • Java引用变量有俩个类型,一个是编译时类型,一个是运行时类型。编译时类型由声明该变量使用类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现多态。
  • 多态存在的三个必要条件:


一,要有继承;
二,要有重写(重写是指子类对父类同一方法的执行代码块重写,而重载是指同一个类下,同一方法名,不同形参的方法);
三,父类引用指向子类对象(左边为父类,右边为子类)。

  • 接下来我们用一个小题目彻底理解多态:

  • (一)相关类:

class A ...{  
         public String show(D obj)...{  
                return ("A and D");  
         }   
         public String show(A obj)...{  
                return ("A and A");  
         }   
}   
class B extends A...{  
         public String show(B obj)...{  
                return ("B and B");  
         }  
         public String show(A obj)...{  
                return ("B and A");  
         }   
}  
class C extends B...{}   
class D extends B...{}
  • (二)问题:一下输出结果是什么?
        A a1 = new A();  
        A a2 = new B();  
        B b = new B();  
        C c = new C();   
        D d = new D();   
        System.out.println(a1.show(b));   ①  
        System.out.println(a1.show(c));   ②  
        System.out.println(a1.show(d));   ③  
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值