接口和抽象类。为什么要使用接口?(Java)

抽象类的基础概念

用abstract 关键字来修饰一个类时,这个类叫作抽象类。
抽象类无法实例化,抽象类是用来被子类来继承的
抽象类是它的所有子类的公共属性的集合
抽象类里可以定义抽象方法,抽象类的子类必需对抽象方法进行实现

为什么要用抽象类和抽象方法

一些父类中的方法没必要编写,他的各个子类中的方法会有不同的实现
既然没有具体实现,为什么不直接使用空方法?
使用抽象方法,由于抽象方法必须被实现,子类知道他必须要实现该方法,避免忽略某个方法的情况

接口的基础概念

接口自身无法被实例化,只能通过它的实现类来实现。

public class Computer implements Electronic { 
public static void main(String[] args) 
{ 
new Computer(); 
} 
@Override 
public int getElectricityUse() 
{ return 0; 
} 
}
Electronic e = new Computer();

接口里面的抽象方法会自动加上public abstract修饰符。
接口里面可以有成员变量,默认修饰符是public static final

为什么要使用接口?什么时候使用接口?

当实现的功能模块,可能有多种具体的实现,通过接口抽象化这个功能。当出现新的相似需求时候,再次实现该接口即可。
如果不使用接口而是抽象类会有什么影响
以汽车为例,定义一个汽车抽象类,有油车和电车两个子类继承了汽车类。这时,如果想要再定义一个油电车混合的类,由于java不能多继承,所以不能同时继承油车和电车,所以代码会冗余。但如果使用接口,由于类可以实现多个接口,所以代码不会冗余。
总结:接口弥补了单继承带来的缺陷。

接口与抽象类区别?

抽象类可以有普通方法实现,而接口的方法中只能是抽象方法

抽象类中的成员变量可以是各种类型的,接口中的成员变量只能是public static final类型

接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;

一个类只能继承一个抽象类,而一个类却可以实现多个接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值