抽象类(abstract)
public abstract class Person {
private String name;
public Person(String name) {
this.name = name;
}
public abstract String getDescription();
public String getName(){
return name;
}
}
抽象类是包含一个或多个抽象方法的类,也可以包含具体数据和具体方法,子类必须实现抽象类的所有抽象方法,否则子类必须被声明为抽象类。抽象类不能被实例化。也就是说,如果将一个类声明为 abstract, 就不能创建这个类的对 象。可以定义一个抽象类的对象变量, 但是它只能引用非抽象子类的对象。
接口(interface)
public interface Comparable<T> {
public int compareTo(T o);
}
一个类可以实现(implement)—个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。
接口中的方法都自动地被设置为 public—样,接口中的域将被自动设为 public static final
区别
- 每个类只能单继承抽象类,但是可以实现多个接口
- 抽象类有实例变量,而接口只能有类变量