设计模式课时一------接口和抽象类的区别


接口和抽象类的区别


说明:所有的对象都是通过类来描述的。但是类并不都是用来描述对象的,例如 抽象类

abstract 抽象类
可以有自己的成员变量,也可以有非abstract的成员方法

interface 接口(特殊的抽象类)
只能有静态的不能被修改的成员变量(static final)
所有的方法都是abstract的

解释: is-a 和 like-a
例如:定义一个Door的抽象类,应具有open()和close()方法,和一个特殊方法alarm()报警器
AlarmDoor 实际上是一个门 (is-a 的关系)
同时又具有alarm的功能(like-a的关系)

abstract class Door{
	abstract void open();
	abstract void close();
}
interface class Alarm{
	void alarm();
}
public class AlarmDoor extends Door implements Alarm{
	void open(){...}
	void closr(){...}
	void alarm(){...}
}
abstractinterface
1.表示继承关系,一个类只能使用一次继承,1.可实现多个接口
2.可以有自己的成员变量,也可以有非抽象方法,2.只能有静态的、不能被修改的成员变量,所有方法都是抽象的
3.是 is-a 的关系,3.是like-a的关系
4.实现抽象类必须实现其所有抽象方法,抽象类可以有非抽象方法,可以private修饰(但是不建议)4.接口中不能有实现方法,JDK1.8以后可以有default实现方法
5.成员变量是friendly类型,可以重新定义和修改,5.成员变量必须是public static final修饰,且必须有初始值,所以实现类中不能重新定义和修改
6.接口类的方法必须是public abstract修饰的
拥有构造函数接口没有构造函数
不可以通过new实例化 ,但可以通过匿名内部类实例化不可以通过new实例化,但可以通过匿名内部类实例化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值