Java中接口和抽象类的区别
Java中接口和抽象类的区别?
抽象类
抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰。抽象类默认的权限修饰符为 public,可以定义为 public 或 procted,如果定义为 private,那么子类则无法继承。抽象类不能创建对象
抽象类和普通类的区别
1、抽象类必须用public、procted 修饰(如果为private修饰,那么子类则无法继承,也就无法实现其抽象方法)。默认缺省为 public
2、抽象类无法创建对象
3、如果一个子类继承抽象类,那么必须实现其所有的抽象方法。如果有未实现的抽象方法,那么必须定义为 abstract
接口
接口中的变量隐式的使用 public static final 修饰,并且需要给出初始值。方法隐式的使用 public abstract 修饰(并且只能是 public ,如果是 private,procted,那么就编译报错)。接口中的方法默认不能有具体的实现(JDK1.8开始可以有默认的实现)
接口和抽象类的区别
1、抽象类只能继承一次,但是可以实现多个接口
2、接口和抽象类必须实现其中所有的方法,抽象类中如果有未实现的抽象方法,那么子类也需要定义为抽象类。抽象类中可以有非抽象的方法
3、接口中的变量必须用 public static final 修饰,并且需要给出初始值。所以实现类不能重新定义,也不能改变其值。
4、接口中的方法默认是 public abstract,也只能是这个类型。不能是 static,接口中的方法也不允许子类覆写,抽象类中允许有static 的方法
本文地址:https://blog.csdn.net/kings_/article/details/112876082
上一篇: 如何修改linux的ip地址
下一篇: phpini怎么关闭notice警告
推荐阅读
-
java中hashCode和equals什么关系,hashCode到底怎么用的
-
java中为什么接口中的属性和方法都默认为public?
-
Python中staticmethod和classmethod的作用与区别
-
JSP中的编译指令和动作指令的两点区别
-
Java中String、StringBuffer、StringBuilder的区别(转)
-
浅析php中抽象类和接口的概念以及区别
-
Java中HashMap和TreeMap的区别深入理解
-
SQL中distinct 和 row_number() over() 的区别及用法
-
详解Node.js中path模块的resolve()和join()方法的区别
-
浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别