JAVA抽象类、抽象方法

小咪咪 2023-06-08 04:41 117阅读 0赞

类的继承的作用主要在于可以扩充已有类的功能,子类继承后可以任意选择是否实现父类的方法,想实现就实现,不想实现就不实现。换句话说,父类无法对子类是否实现自己的某个方法做强制的约定。要想强制子类必须实现父类的某个方法,在设计时就需要考虑抽象类。

一、抽象类的定义

抽象类主要是对子类中覆写方法进行约定,在抽象类中可以定义一些抽象方法来实现这些约定。抽象方法是指abstract关键字定义且无方法体的方法。包含抽象方法的类就是抽象类,也必须用abstract修饰。抽象类及抽象方法,例子如下:

  1. abstract class Demo {
  2. private String type;
  3. // 定义抽象方法
  4. public abstract String test();
  5. }

总的来说,抽象类只是比普通类增加了抽象方法以及对子类的强制性覆写抽象方法的要求,其他方面完全相同。

二、抽象类的使用

抽象类可以理解成“不完整的类”,抽象类不能像普通类那样直接使用,要是用抽象类要注意下面几点:

  1. 抽象类必须有子类,子类通过extends来继承抽象类;
  2. 抽象类的子类(不是抽象类)必须覆写抽象类中的全部抽象方法;
  3. 抽象类无法直接产生实例化对象,要想产生实例化对象,可以通过子类向上转型的方式完成。

三、抽象类要注意的几点

  1. 定义抽象类时不能使用final关键字,因为抽象类必须有子类;
  2. 抽象类中可以没有抽象方法,但是任然不能使用new来直接实例化;
  3. 抽象类中可以定义static方法,且同普通类一样,该static方法不受到抽象类对象的限制(static方法永远不受到实例化对象或结构的限制,永远可以通过类名进行调用)。

四、包含抽象方法的类就是抽象类吗?抽象类一定包含抽象方法吗?抽象类能不能有普通方法?能不能定义构造方法?

(1)包含抽象方法的类就是抽象类;

(2)抽象类可以没有抽象方法;但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。

(3)抽象类中可以有普通方法

(4)抽象类中可以定义构造方法,在抽象类中可以有构造方法,只是不能直接创建抽象类的实例对象。

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA抽象抽象方法

    类的继承的作用主要在于可以扩充已有类的功能,子类继承后可以任意选择是否实现父类的方法,想实现就实现,不想实现就不实现。换句话说,父类无法对子类是否实现自己的某个方法做强制的约定

    相关 抽象抽象方法

    抽象类和抽象方法的修饰符abstract 一、含有抽象方法的类必须声明为抽象类         换句话说就是抽象方法只能存在于抽象类中 二、抽象类必须被继承,抽象类中的方

    相关 抽象抽象方法

    抽象类: 1、抽象类的定义? 当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。只抽取功能定义,而不抽取功能主体。 如果在本类有无法实现的

    相关 理解Java抽象抽象方法

    在面向对象中,所有的对象都是通过类来描述的。 但是并不是所有的类都用来描绘对象。 当一个类的属性不足以描绘一个对象的时候,这个类就是抽象类。 由于抽象类不包含实例对象