Thinking in java 读书笔记(六、接口:抽象类/方法,接口的属性和方法,策略模式,适配器模式,工厂模式)

本文深入探讨Java中的抽象类和接口的区别与联系,包括抽象方法的使用、接口的特性及其实现方式,并介绍了适配器模式、策略模式和工厂模式等设计模式的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、

抽象类/抽象方法.
    抽象方法是没有实体的,继承必须实现抽象方法,如果不实现抽象类的抽象方法,
    则子类也是抽象类,抽象类可以没有抽象方法,但是有抽象方法一定是抽象类.

二、

    接口的属性隐式的为public static final,而且必须要有初始值。接口的方法是默认public abstract的。
    接口没有代码块。
    这里注意了,接口是可以继承接口的,而且支持多继承= =。emmmm以后面试要是
    问java是否支持多继承就这样说:java的class只能单一继承class,但是可以实现多个接口,而java的interface支持多继承来实现扩展。

三、

    接口多继承中会有一种情况,多个接口的方法名相同,但是他们的返回类型或者参数不同,会报错,记得设计接口的时候不要搞出同名抽象方法。

四、

    书上应该是第一次提到了设计模式:适配器模式,策略模式。之前有看过一点点的head first 设计模式,所以还蛮好理解。
    适配器模式,就是新建一个adapter类继承旧的interface,然后传入新的interface(书上为构造器传入),然后将旧的interface的方法用新的interface方法覆盖即可。策略模式更易懂,就是代码在设计的时候少继承多用接口,让代码更加灵活。

五、

thinking in Java 的小tip:在SE5之前,Java并没有enum类型,所以要生成enum就只能是在接口中定义属性,当成enum用。因为static final的产生的效果和c++的enum产生的一样。

六、

这章讲到的第三个设计模式:工厂模式,工厂模式其实就是通过调用方法产生对象。
目前书上是通过接口,其实也可以通过匿名内部类实现。
以下为工厂模式具体demo:
interface Cycle{
    void display();
}
interface CycleFactory{
    Cycle getCycle();
}
class Unicycle implements Cycle{

    @Override
    public void display() {
        System.out.println("This is unicycle");
    }
}
class UnicycleFactory implements CycleFactory{

    //其实也是协变返回类型的应用
    @Override
    public Cycle getCycle() {
        return new Unicycle();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值