接口和抽象类的区别

1.抽象类

抽象类就是由abstract关键字修饰的类。
如果一个类中含有抽象方法,那这个类必定是抽象类。但是抽象类中不一定只能有抽象方法,还可以有普通方法。抽象类不可以实现,是因为抽象类里还存在的未实现的方法。
抽象类与普通类的区别:
1.抽象方法必须是public或者是protected修饰的,默认缺少的情况下是public,不能为private,因为这样就不能被子类继承了。
2.抽象类不能被实现,不能用来创建对象。
3.抽象类的子类必须实现父类的方法,如果不能实现,那么这个类一定是抽象类。

2.接口

接口是一种抽象的类型,接口中可以有变量和方法。但是,接口中的变量必须是以public
static final修饰的静态常量,方法是隐式地定义为public abstract,所以说,接口中的方法必定是抽象方法。如果一个类实现了这个接口,那么就必定要实现这个接口的所有方法。

3.区别

相同点
1.都不能被实例化。
2.接口中的实现类和抽象类的子类必须实现了父类的所有方法才能被实例化。
不同点
1.接口中的方法只能定义,不能实现。抽象类的方法可以有定义,也可以有实现。
2.接口只能通过implements实现,抽象类通过extends继承。
3.接口可以被多实现,但抽象类只能被单继承。
4.接口中的变量是公告的静态常量,而抽象类的变量是普通变量。
5.接口强调特定功能的实现,而抽象类强调所属关系。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章