没有实际工作的方法, 我们可以把它设计成一个 抽象方法,而包含抽象方法的类我们称之为抽象类
我们将汽车的所加的燃料设计成一个抽象方法,将其放入类中,就构成了一个抽象类
public abstract class Car {
private String carName;
private String carNum;
public String getCarName() {
return carName;
}
public void setCarName(String carName) {
this.carName = carName;
}
public String getCarNum() {
return carNum;
}
public void setCarNum(String carNum) {
this.carNum = carNum;
}
public Car() {
}
public Car(String carName,String carNum) {
setCarName(carName);
setCarNum(carNum);
}
//抽象类
public abstract void addEnergy();
}
抽象类:包含抽象方法的类,我们把它叫做 抽象类
1、用关键字abstract进行修饰
2、在抽象类当中 可以有普通类的所有属性或者方法
3、和普通的类 不一样的地方就是,包含了抽象方法。
4、和普通的类 不一样的地方就是 他不能够被实例化
5、抽象类的主要作用就是用来被继承的
6、抽象类就是用来被继承的 所以:不能被final所修饰
7、抽象方法 也不能是私有的 或者是 static的
8、只要有一个类,继承了这个抽象类 那么 必须要重写抽象类当中的方法。
9、如果这个类,不想重写抽象类里面的抽象方法,那么此时这个类也可以设置为抽象类。
我们需要知道的是,只要类中有一个抽象方法,这个类就是抽象类。有抽象方法的类一定是抽象类,而抽象类不一定有抽象方法。
抽象类本身是无法实例化的,要想使用,必须 创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法
一个类如果要继承抽象类中,必须重写抽象类中的抽象方法。
public class EleCar extends Car{
public EleCar(String carName,String carNum) {
super(carName,carNum);
}
@Override//重写的抽象方法
public void addEnergy() {
System.out.println(getCarName() + "加电");
}
}
public class GasCar extends Car {
public GasCar(String carName,String carNum) {
super(carName,carNum);
}
@Override
public void addEnergy() {
System.out.println(getCarName() + "加柴油");
}
}
public class OilCar extends Car{
public OilCar(String carName,String carNum) {
super(carName,carNum);
}
@Override
public void addEnergy() {
System.out.println(getCarName() + "加汽油");
}
}