接口

接口:
    有时我们需要从多个不相关类中设计出一个子类型,而java继承是单继承的特点无法满足我们的需求,
    所以,我们可以使用接口达到多继承的目的
    
    接口实际上就是一种规范制度
接口的特点:
    (1)接口使用interface关键字,而不是class,但是我们可以理解成接口是特殊的抽象类。
    (2)接口里只能有抽象方法和常量。
    (3)接口不能创建对象和实例化,没有意义。
    (4)接口中不能提供构造方法
接口中的常量:
    默认使用修饰词为:public static final
接口中的方法:
    默认使用public abstract

    类型必须符合一个(comparable)规范才可以比较
    
接口的实现:
    (1)子类可以实现接口中的所有抽象方法,
    (2)使用implement关键字进行实现
    (3)如果子类没有实现所有的抽象方法,那么子类需要使用abstract修饰    
    (4)子类可以实现多个接口,接口间使用逗号隔开。
接口间的继承
    (1)接口与接口之间可以使用继承,子接口继承了父接口的抽象方法
    (2)支持多继承

        
多态:面相对象的特征之一

    向上造型:
    父类型的变量指向子类对象
    (1)父类型的变量指向不同的子类型的对象,调用的功能有不同实现
    
    Animal a = new Dog();
    a.noise();//叫
    Animal 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、付费专栏及课程。

余额充值