Java接口与抽象类的区别
前言
本文大致介绍了Java中接口与抽象类的区别
一、抽象类
抽象类可以定义成员变量(可以是变量也可以是常量)、构造方法、抽象方法、具体方法,抽象类中的抽象方法能够使用public或default修饰。
代码如下(示例):
public abstract class Abstract {
public abstract void print();
protected abstract void test();
public void add(){
System.out.println("add");
}
private String name;
public static final String sex = "男";
public Abstract(String name) {
this.name = name;
}
}
二、接口
接口没有构造方法,成员变量只能定义常量、方法只能是抽象方法或以defaul和static开头的具体方法,接口中的抽象方法只能用public修饰,可省略。
代码如下(示例):
public interface Interface {
public void print();
public void add();
public static final String name = "Jack";
default void test(){
System.out.println("test");
}
public static void count(){
System.out.println("count");
}
}
总结
抽象方法需要被子类或实现类重写,因此不能用static和private修饰,因为静态方法和private修饰的方法不能够被重写。
很好的一篇接口与抽象类区别的文章