【学习笔记】第九章 接口

9.1 抽象类和抽象方法

包含抽象方法的类叫做抽象类。

如果在子类中不重写抽象类的抽象性方法,则该子类也为抽象类。

抽象类可以阻止对象的产生,使类的用途更为明确。


9.2 接口

接口中的成员变量默认为static和final,必须赋初值。
接口中的方法默认为public,且只能为public和abstract。

interface IDemo {
    //The blank final field i may not have been initialized
    int i;
    //Illegal modifier for the interface method f; only public & abstract are permitted
    private void f();
}

9.3 完全解耦

通过接口可以实现在一个新类中使用不存在在该类的继承结构中的类的方法。(赋予类以功能而不使用继承)。

对于方法设计也更为灵活,如果一个方法要求传入具有某个功能的类对象,若不使用接口则只能传入该类及其子类对象;通过接口,可以将实现了该接口的对象向上转型为接口类型,从而实现了参数的传入。


9.5 通过继承来扩展接口

避免在不同接口中使用同样的方法名。

interface IDemo1 {
    void f();
}

interface IDemo2 {
    int f();
}

class C implements IDemo1, IDemo2{

    @Override
    public void f() {
    }

    @Override
    public int f() {
    }

}

类C必须实现IDemo1,IDemo2中的方法,而只有返回值的重载是不允许的,故报错。

适配器模式

对于发现(导入)的类,可以建立该类的适配器类并实现相关接口,可以实现具有原有类的对象也具有接口性质。

从而实现了对发现类的修改,可以定制符合需求并且实现接口的类。

工厂模式

将接口与实现分离,建立工厂类,在工厂类内部实现接口并返回实现了接口的对象。

这样可以实现接口实现的透明,可以随时修改接口的实现方式和返回对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值