抽象和接口

a.抽象(abstract)

        1. 定义

                a. 抽象类:在普通类里增加了抽象方法。
                b. 抽象方法:没有具体的执行方法,没有方法体的方法。

        2. 总结

                a. 因为抽象方法没有方法体,无法执行,所以不能new这个抽象类,类不能被实例化,编译器会告诉我们无法编译此类,因为包含抽象方法,所有抽象方法必须在抽象类里。
                b. 抽象类本身被设计成只能用于被继承,所以抽象类可强迫子类来具体实现其抽象方法。
                c. 抽象类里可以有普通方法。
                d. 如果子类也是抽象类,可以不用重写父类的方法。
                e. static和final都不能修饰抽象方法(修饰的方法都不能被重写)。

b. 接口(interface)

        1. 定义

                a. 一个抽象类没有字段并且所有方法都是抽象方法。
                b. 某种特征的约定,没有方法体的方法。
                c. 比抽象类还要抽象的纯抽象接口。

        2. 术语区分

                a. Java的接口特指interface的定义,表示一个接口类型和方法定义。
                b. 编程接口泛指接口规范,方法签名,数据格式,网络协议等。

        3. default方法

                a. 在接口中可以定义default方法,目的是:接口新增一个方法时,所有实现类都要修改,如果新增的是default方法,那只在需要的地方复写此方法。

                b. default方法和抽象类种的普通方法有所不同,因为interface没有字段,defalut方法无法访问字段,而抽象类的普通方法可以访问实例字段。

        4. 总结

                a. 属性:有且仅有全局常量,public static final修饰(可省略),由于接口是纯抽象类,所以不能有实例字段,但是可以有静态字段。
                b. 方法:都是抽象方法,public abstract(没有方法体)修饰(可省略)。
                c.不能被实例化,没有构造方法,只能通过实现类来具体实现。
                d. 类可以实现接口,实现接口必须重写接口中的方法。
                e. 可以实现多个接口,单继承,多实现。
                f. 一个类既可以继承又可以实现,先继承后实现。
                g. 接口可以继承接口,扩展接口的方法:interface Student extends Person

c. 抽象和接口的区别

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值