抽象类
2019-03-15 / JAVA / 997 次围观 / 0 次吐槽 /抽象类:可以理解为看不懂的类
抽象类的特点
抽象类和抽象方法必须用abstract关键字修饰
abstract class 类名{}
public abstract void eat();
抽象类不能实例化,那么如何进行抽象类实例化?
由具体的子类实例化。其实这也是多态的一种,抽象类多态
抽象类不一定有抽象方法,有抽象方法的类一定是个抽象类
抽象类的子类
要么重写抽象类中的所有抽象方法
要么是抽象类
抽象类成员的特点
成员变量:即可以是变量,也可以是常量。
abstract不能修饰成员变量(属性),只能修饰类和方法
构造方法:抽象类也是有构造方法的,用于子类访问父类数据的初始化
成员方法:抽象类的方法可以是抽象的,也可以是非抽象
抽象类的成员方法特性:
抽象方法:强制要求子类实现
非抽象方法:子类继承实现自己的业务,提高代码的复用性
试题:
1.一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义
可以,这么做的目的只有一个,就是不让其它类创建本类对象,交给子类完成
2.abstract不能与哪些关键字共存
abstract和static
static修饰的方法是通过类名来调用
abstract修饰的方法必须由子类来实现,并由子类对象来调用方法
对象方法与类方法是冲突的
abstract和final
final修饰的方法是不能被重写的,所以也矛盾
abstract和private
private修饰的方法不让子类访问,所以也矛盾
Powered By Cheug's Blog
Copyright Cheug Rights Reserved.