Java学习(接口-多态)

接口–多态(向上造型–向下造型)
*接口:
有时,我们需要从多个不相关的类中设计出一个子类型,而java继承是单继承的特点,无 法满足我们的需求,
所以,我们可以使用"接口"来达到多继承的目的.

       接口实际上就是一种规范制度

–特点:
(1)接口使用interface关键字,而不是class
但是我们可以理解成接口是特殊的抽象类
(2)接口里只能有抽象方法和常量
(3)接口不能实例化,没有意义
(4)###接口不能提供构造器

–接口中的常量:
默认修饰词为public static final

–接口中的方法:
默认修饰词为public abstract

–接口的实现:
(1)子类需要实现接口中的所有抽象方法
(2)使用implements关键字进行实现
(3)如果子类没有实现所有抽象方法,那么子类需要用abstract修饰
(4)子类可以实现多个接口,接口间使用逗号(,)分开

–接口间的继承
(1)接口与接口之间可以使用继承
子接口继承了父接口的抽象方法
(2)支持多继承
*多态:面向对象的特征之一

--向上造型:
  (1)父类型的变量指向不同类型的子类型.
      调用的功能有不同的实现 
     Animal  a =  new  Dog();
     a.noise();//叫   
     a = new Cat();
     a.noise();//叫   
     
  (2)不同的父类型变量指向同一个对象有不同的功能
        ZhengYangDoor  a  = new  ZhengYangDoor();
        a.theftproof();//防盗
        a.openDoor();//开门
        InterA   ia = a;
        ia.theftproof();   
                      
               
 --向下造型:
                    将父类型(接口)的变量赋值给子类型或者其他父类型(接口)的变量
                    只有向上造型无法满足需求时,才会向下造型
     Animal a = new Dog(); 
     Dog dog  = (Dog)a;
     dog.吃骨头();
    
     Cat cat = (Cat)a;//编译通过,语法正确,运行期间,造型错误
     cat.扑捉老鼠();
    
                    运行期间有可能会发生(类造型异常):java.lang.ClassCastException 
    

                   为了避免出现错误:我们需要使用关键字instanceof来判断
                                                    对象是不是要转换成的类型
       if(a instanceOf Cat){
         Cat cat = (Cat)a;
      }               
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值