接口和抽象类的区别说明
下文笔者讲述接口和抽象类的区别说明
学习完本篇之后,你将彻底掌握接口和抽象类的区别,如下所示
学习完本篇之后,你将彻底掌握接口和抽象类的区别,如下所示
区别一:实现方式
抽象类的子类使用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() {}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


