2021-06-24

接口 interface

一个类中的所有方法都是抽象方法的时候,这个类叫做接口
规则性、可扩展性

使用:
定义一个接口

public interface Inter{
    void show();
}

实现接口 定义一个类用implements 接口名

public class InterImpl implements Inter{
    //复写方法
    public void show(){
        //方法体
    }
}

接口成员特点:

构造方法:接口没有构造方法 所以也就不能创建对象
成员变量:默认被public static final修饰
成员方法:默认被public abstrace修饰(因为接口中都是抽象方法,所以省略了)

在jdk7以后对接口更新了:

jdk7:接口都是抽象方法,子类都必须重新

jdk8:
允许在接口中写默认方法 被public default修饰 可选重写
然后一个类继承多个接口,而多个接口有相同的默认方法时,这个类必须重写!因为不重写调用相同的方法时,系统不知道调用哪一个放法,从而报错。
允许写静态方法:使用接口名调用

jdk9:允许在接口中写私有方法,只能在本接口中使用该私有方法

接口和类

类和类:单继承 多层继承
类和接口:多继承
接口和接口:多继承

一个类继承父类和实现接口不冲突

多态

1、理解:一个对象有多种形态

比如:Animal a = new Dog();
Dog g = new Dog();

Fu fu = new Zi()

2、多态的前提:
继承/实现 + 重写方法 + 父类引用接收子类对象

成员的访问特点

成员变量:编译的时候看左边,运行的时候也看左边 就是说成员变量看父类
成员方法:编译看父类,运行看子类,因为子类复写了父类的方法。

3、好处
在一个方法里面把参数写成父类类型,这样就可以使用任何子类的方法了

4、弊端
只能使用所有子类共有的方法、不能使用子类特有的方法
转型:向上转型----多态的体现
向下转型-----1、加一个判断 fu instanceof zi 结果为true的话就调用特有的方法 2、强制转换 Zi z = (Zi)fu

向下转型可能会出现ClassCastException的错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值