当需求中只需要用到子类的实例和方法,父类的实例及方法是用不到的,
这时使用抽象类限制父类的实例化,使用抽象方法优化代码。
抽象是面向对象的一种重要方法,通过抽象我们能够设计一个更普通、更通用的类。
关键字abstract 可用来修饰方法和类,表示“尚未实现”的含义。
抽象类声明格式
[访问权限] abstract class类名{……}//例 abstract class A{.....}
抽象类不能实现实例化,否则无法通过编译
抽象类通常至少定义一个抽象方法,但允许没有抽象方法
如果子类没有父类的所有的抽象方法,那么该子类必须声明为抽象类
抽象方法声明格式:
访问权限 abstract 返回类型方法名([参数表]); //例public abstract double getArea();
抽象方法
没有方法体
抽象方法
必须在抽象类里
抽象方法
必须在子类中被实现,除非子类是抽象类
抽象方法
不能被
private
、
final
或
static
修饰
interface(接口)
接口是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有方法的实现。
接口的修饰符可以是public或缺省
接口中的方法都是抽象的和公有(public)的
声明格式:
[权限修饰符] interface 接口名 [extends父接口列表]{
//抽象方法和静态常量
}
接口可以用extends继承另一个接口