一、抽象类:一个类中没有包含足够的信息来描述具体的事物。
用来捕捉子类的通用特性,比如两个事物具备共性,就可以向上抽取。
抽象类不能被实例化,只能被用作子类的父类。
在java中有两种方式能够只写方法名,不写方法体,一是抽象类,二是接口(本文介绍抽象类)
二、建立一个抽象类(抽象类的关键为abstract)
package introduction7; //abstract是手动输入的 public abstract class AbstractCars { }
三、抽象类中可以包含抽象方法,抽象方法也需要用abstract关键字进行修饰。
四、抽象方法和抽象类的关系
1、抽象类中不一定有抽象方法,当有抽象方法的类一定是抽象类。
2、抽象类中的抽象方法必须被实现。
3、如果一个子类中没有实现父类中的抽象方法,那么子类也成为了一个抽象类。
4、抽象类必须被继承,抽象方法必须被重写。
五、如何使用抽象类、抽象方法?
1、创建两个类,AbstractCars和AbstractDemoBMW
其中AbstractCars包含以下内容:
package introduction7; //abstract是手动输入的 public abstract class AbstractCars { int speed; private int privateSpeed; protected int protectedSpeed; public AbstractCars() { this(0); } public AbstractCars(int startSpeed) { speed = startSpeed; } public void setprivateSpeed(int privateSpeed) { this.privateSpeed = privateSpeed; } //抽象方法,任何继承了这个类的子类都必须实现这个抽象方法 public abstract void engineStart(String keyType,int num);
}
AbstractDemoBMW主要用来演示调用。
2、如果AbstractDemoBMW想使用AbstractCars这个抽象类,必须先继承AbstractCars
package introduction7; public class AbstractDemoBMW extends AbstractCars{ public void setprivateSpeed(int privateSpeed) { super.setprivateSpeed(10); } //实现父类中的抽象方法,如果不实现直接调用,程序会报错 @Override public void engineStart(String keyType, int num) { System.out.println("这是bmw的启动方式。。。"); } }