java系列7:抽象方法和抽象类

一、抽象方法

在某些情况下,基类无法(或者没有必要)提供被覆盖方法的具体实现,那么就可以将此方法声明成抽象方法。

每一个抽象方法等同于一个模板,一旦子类继承当前抽象类以后,实现该模板,通过模板体现不同的功能。

使用关键字abstract声明抽象方法,一般语法:

[访问权限] abstract 返回值类型 方法名称(参数列表);

public abstract void draw();

二、抽象类

如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。

定义抽象类同样使用关键字abstract,一般语法:

[访问权限] abstract class 类名 {
    成员列表
}

public abstract class Shapes {
    public abstract void draw();
}
java系列7:抽象方法和抽象类_第1张图片
abstract
  • 抽象类不可以直接实例化,只可以用来继承;
  • 抽象类的派生子类应该提供对其所有抽象方法的具体实现;
    1.可以这么认为,抽象方法实际上就是由抽象基类强制要求其派生子类必须实现的方法原型;
    2.如果抽象类的派生子类没有实现其中的所有抽象方法,那么该派生子类仍然是抽象类,只能用于继承,而不能实例化;
  • 抽象类中也可以包含有非抽象的方法;
  • 构造方法和静态方法不可以修饰为abstract。
java系列7:抽象方法和抽象类_第2张图片
示例

你可能感兴趣的:(java系列7:抽象方法和抽象类)