抽象类:
抽象类和常规类很像,但是:
1.不能使用new操作符创建它的实例,但是抽象类可以用作一种数据类型:
GeometricObject[ ] objects = new GeometricObject[10];
2.抽象方法只有定义没有实现,它的实现由子类提供
3.一个包含抽象方法的类必须声明为抽象类
4.子类若不能实现抽象父类的所有抽象方法,子类也必须定义为抽象方法
5.抽象方法是非静态的
6.可以定义一个没有抽象方法的抽象类
7.父类是具体的。子类也可以是抽象的
接口:
定义语法:修饰符 interface 接口名 { }
接口是一种与类相似的结构,只包含常量
和抽象方法
。
1.不能使用new操作符创建它的实例
2.接口中所有数据域都是public static final
,而且所有的方法都是public abstract
,所以java允许忽略这些修饰符
3.标记接口
,不包括常量也不包括方法,它用来表示一个类拥有某些特定的属性。例如实现Cloneable接口的类标志为可克隆的,而且它的对象可以使用在Object类中定义的clone()方法克隆,还有就是我们熟悉的序列化接口serializable也是一种mark interface。
public interface Cloneable( ){ } //标记接口
一个类可以实现多个接口,但是只能继承一个父类,接口可以继承接口