一、抽象类概述
什么时候用抽象类?
答:某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。
抽象方法的定义:方法只有声明没有实现,用abstract来修饰,该方法就是抽象方法。
注意:抽象方法必须定义在抽象类中,该类也用abstract修饰。
二、抽象类的使用
抽象类的定义:权限修饰符abstract class 类名 {}
抽象方法的定义:权限修饰符abstract 返回值类型 方法名(参数列表) ;
【示例】抽象类&抽象方法的定义
// 抽象类,员工类 abstract class Employee { // 抽象方法,用abstract修饰,只有声明没有实现 public abstract void work(); } // 讲师类 class Teacher extends Employee { @Override public void work() { // 实现抽象方法 System.out.println("老师讲java课"); } } // 助教类 class Assistant extends Employee { @Override public void work() { // 实现抽象方法 System.out.println("助教协助同学解决bug"); } } |
三、抽象类的特点
抽象类的特点:
1)用abstract修饰的类称之为抽象类。
2)抽象类不能被实例化,因为抽象方法只有声明,无法用对象调用该方法。
3)抽象类可以定义成员变量和静态变量。
4)抽象类可以有构造方法,方便子类创建对象时给抽象类的属性赋值。
5)抽象类中可以定义普通方法,也可以定义抽象方法(没有抽象方法也可以)。
6)抽象类一定是一个父类,需要子类重写父类的抽象方法,然后在实例化使用。
抽象方法的特点:
1)抽象方法只有方法声明,没有方法体。
2)子类要么实现父类的抽象方法,要么子类也是一个抽象类,否则编译失败。
3)抽象方法只能存在于抽象类或接口中,不能存在于普通类中。
注意:abstract关键字不能和private、final、static关键字共存!