0%

Java-抽象类笔记

前言

写一写我所了解的Java抽象类。

定义

抽象类也是一种类,不过比较特别在于抽象类不能实例化。

作用

往往抽象类是用作建立一个抽象的模型,作为类的模型,模板。
抽象类在同类对象所对应的类体系中,往往处于最顶层。

结构

1
2
3
4
5
6
abstract class 类名{
抽象成员 = value;
抽象方法();
普通方法(){}
.....
}

抽象类的使用是通过由子类继承抽象类来使用其中的成员变量。

类的修饰词

abstract就是抽象类的关键词。一般我们都知道对于类,变量,方法都有其访问修饰publicfinalprivate(需要注意protect是不能修饰类的)。那么对于抽象类的修饰词又如何呢。

  • 对于public抽象类可以使用,这样抽象类可以任意被继承使用。
  • 不能使用final,因为抽象类必须被继承。
  • 只有内部类才能使用private,外部类不能使用private

成员变量

成员变量可以在声明同时赋值。

抽象类中的方法

抽象方法在抽象类中不可以实现,只要写出声明,无函数体。
例如:

1
public abstract void prin(参数);

抽象类中可以有普通方法,普通方法(非抽象方法)可以实现。

1
public  void prin(参数){...};

注意以及总结

  • 一旦一个类中存在抽象方法,那么此类必须是抽象类
  • 抽象类中不一定所有变量,方法都是abstract修饰的
  • 抽象方法不可以在抽象类中实现。
  • 子类通过继承抽象类来使用抽象类的变量以及方法,以及实现抽象方法(但不是强制的)
  • 抽象类必须是要能被继承的,因此不可以由final修饰
  • 只有内部类可以使用private修饰(反正抽象类是个模板,也没必要私有化)