抽象类:
使用abstract关键字修饰的类称为抽象类。
声明抽象的类的语法:
public abstract class 类名{
类体
}
抽象类的特征:
- 抽象类可以有构造方法,抽象类中的构造方法作用,是提供给子类调用。
- 抽象类中可以没有抽象方法。
- 抽象类不能实例化,即不能用new来实例化抽象类。
- 抽象类只能用来被继承。
抽象方法:
使用abstract关键字修饰的方法称之为抽象方法。
抽象方法的语法:
public abstract 返回值 方法名();
注意:抽象方法没有方法体。
抽象方法的特征:
- 抽象方法必须被子类实现。
- 有抽象方法的类只能定义成抽象类。
什么情况下使用抽象方法和抽象类:
通过抽象类可以避免子类设计的随意性,通过抽象类就可以做到严格控制子类设计,使子类之间更加通用。
抽象类,抽象方法代码演示:
package com.xpx;
/**
* 飞机类
* @author xpx
*
*/
public abstract class Aircraft {
/**
* 飞行
*/
public abstract void fly();
}
/**
* 战斗机类
* @author xpx
*
*/
class Fighter extends Aircraft{
@Override
public void fly() {
System.out.println("高速飞行中");
}
}
/**
* 客机类
* @author xpx
*
*/
class Airliner extends Aircraft{
@Override
public void fly() {
System.out.println("安全平稳的飞行");
}
}
测试:
package com.xpx;
public class Test {
public static void main(String[] args) {
// 多态父类引用指向子类对象
Aircraft fighter = new Fighter();
fighter.fly();
Aircraft airliner = new Airliner();
airliner.fly();
}
}