Java基础——抽象(abstract)

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/dukangming/article/details/88657511

1.抽象类概述

  • 抽象类特点
    • a:抽象类和抽象方法必须用abstract关键字修饰
      • abstract class 类名();
      • public abstract void eat();
    • b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者接口
    • c:抽象类不能实例化,那么抽象类如何实例化?
      • 按照多态的方式,由具体的子类实例化,其实这也是多态的一种,抽象类
    • d:抽象类的子类
      • 要么是抽象类
      • 要么重写抽象类中的所有抽象方法

2.抽象类的成员特点

  • 成员变量
    • 既可以是变量,也可以是常量。(abstract是否可以修饰成员变量?不能)
  • 构造方法
    • 有。 用于子类访问父类数据的初始化
  • 成员方法
    • 既可以是抽象,也可以是非抽象
  • 抽象类的成员方特性
    • 抽象方法 强制要求子类做的事情
    • 非抽象方法 子类继承的事情,提高代码复用性

3.常见面试题

  • 一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
    • 答:可以 ,目的只有一个,不让其他类创建本类对象,只能交给子类完成。
  • abstract不能和哪些关键字共存?
    • 答:在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dukangming/article/details/88657511