码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类与接口的区别

时间:2018-12-28 22:15:10      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:stact   efault   final   protect   protected   添加   str   实例   rac   

抽象类:com.lzz.base.AbstractDemo
1、如果类被声明为abstract,方法不一定要abstract,但如果方法声明为abstract,类必须是abstract
2、声明为abstract的方法不能有方法体
3、final与abstact不能同时修饰类
4、抽象类不能被实例化,但可以有构造器
5、继承某抽象类的子类,除非子类也是抽象类,否则必须实现抽象类中的抽象方法
6、抽象方法可以继承一个类和实现多个接口
7、default不能修饰方法,因为它只能在接口中使用

接口:com.lzz.base.ITest
1、接口中的方法不能用protected、private,并且没有必要用public修饰,默认是public
2、default方法必须要有方法体,并且可以有多个default方法
3、接口不能有构造器

区别:
1、都可以有方法实现,但接口中的方法只能是default
2、抽象类可以有构造器,接口没有
3、抽象类比接口的速度要快,因为接口需要查找实现该接口的类
4、抽象类中可以有main方法,接口中没有
5、如果添加新方法时,抽象类可以直接添加一个方法实现,而接口需要改动所有实现它的类

抽象类与接口的区别

标签:stact   efault   final   protect   protected   添加   str   实例   rac   

原文地址:https://www.cnblogs.com/goodbye-lazy/p/10192903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!