接口和抽象类的区别说明
下文笔者讲述接口和抽象类的区别说明
学习完本篇之后,你将彻底掌握接口和抽象类的区别,如下所示
学习完本篇之后,你将彻底掌握接口和抽象类的区别,如下所示
区别一:实现方式
抽象类的子类使用extends来继承 接口则是使用implements来实现接口例
1.抽象类 public abstract class MyAbstract {} //继承抽象类 public class Demo extends MyAbstract {} 2.接口 public interface MyInterface {} //实现接口 public class Demo implements MyInterface { }
区别二:构造函数
抽象类可以有构造函数 接口不能有例
public abstract class MyAbstract { public MyAbstract(String msg) { //... } } public interface MyInterface { // 错误 public MyInterface() { // } }
区别三:main()方法
抽象类有main()方法,main方法也可以运行 接口不能有 main()方法例
public abstract class MyAbstract { public static void main(String[] args) { System.out.println("Hello World"); } } public interface MyInterface { // 错误 public static void main(String[] args) { System.out.println("Hello World"); } }
区别四:实现数量
类可实现多个接口 类只能继承一个抽象类
import java.io.Serializable; public class Demo implements MyInterface, Serializable,Comparable<String> { @Override public int compareTo(String o) { return 0; } } 类实现3个接口 import java.util.Arraylist; public class Demo extends MyAbstract, ArrayList<String> { }
区别五:访问修饰符
接口中的方法默认使用 public 修饰 抽象类中的方法可以是任意访问修饰符。例
public interface MyInterface { void show(); } //等效于以下写法 public interface MyInterface { public void show(); } 抽象类中的方法定义均合法 public abstract class MyAbstract { public void show1() {} protected void show2() {} private void show3() {} void show4() {} }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。