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;

          }       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值