永发信息网

Java 中abstract class和interface有什么区别

答案:4  悬赏:0  手机版
解决时间 2021-02-19 03:09
  • 提问者网友:我的未来我做主
  • 2021-02-18 08:07
不需要一大堆资料。只要详细的列出1、2、3、4这样的点
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-02-18 09:36
两者的语法区别:
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然
eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
全部回答
  • 1楼网友:蓝房子
  • 2021-02-18 13:10
1.命名关键字不同,abstract class ,接口是interface 2.abstract class 只能单根继承一个类只可以继承一个父类,interface可以多重实现一个类可以实现几个接口, 最本质的区别就在这里吧
  • 2楼网友:你哪知我潦倒为你
  • 2021-02-18 12:00
简单来说, 接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。 还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如remote接口)和数据共享(里面的变量全是常量)的作用.
  • 3楼网友:雾月
  • 2021-02-18 10:45
interface是接口,所有的方法都是抽象方法,成员变量是默认的public static final 类型。接口不能实例化自己。 abstract class是抽象类,至少包含一个抽象方法的累叫抽象类,抽象类不能被自身实例化,并用abstract关键字来修饰
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯