作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明。谢谢!
1.抽象类
之所以引进抽象类的概念是因为某些情况下,父类只需要告诉子类应该包含什么样的方法,但是没有必要实现这些具体方法,而由子类来是实现;
抽象方法使用abstract来修饰,含有抽象方法的类只能定义因此,为抽象类,但是抽象方法可以没有抽象类;
因此,抽象类无法使用new关键字来创建对象;只能当做作父类被其他子类继承;以发挥多态的优势,使得程序更加灵活;抽象类作为子类的模板,避免子类设计的随意性;
(1)父类可以只定义需要使用的某些方法,把不能实现的部分定义为抽象方法,留给子类实现;
2.接口
接口不包含普通方法,接口里的所有方法都是抽象方法,是更彻底的抽象;
(1)定义
[修饰符] interface 接口名 extends 父接口1,父接口2...
{
//...
}
修饰符可以是public或者省略;
接口定义只是一种规范,因此接口里不能包含构造器和初始化块定义。接口里可以包含Field(只能是常量),方法(只能是抽象实例方法),内部类(包含内部接口和枚举)定义;
(2)接口支持多继承,一个接口可以有多个直接父接口
3.枚举类
实例有限且固定的类称作枚举类;
(1)关键字,enum
(2)定义时需要显式列出所有的枚举值;
(3)构造函数使用private修饰;