抽象方法:使用abstract修饰的方法,没有方法体,没有声明,定义的是一种规范,就是告诉子类必须要给抽象方法提供具体的实现
抽象类:包含抽象方法的类就是抽象类,通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。
csharp
package testduotai;
public abstract class Animal {
public abstract void shout(); // 抽象方法
public abstract void run(); // 抽象方法
}
class Dog extends Animal {
// 子类必须实现父类的抽象方法,否则编译报错
@Override
public void shout() {
System.out.println("汪汪汪");
}
@Override
public void run() {
System.out.println("跑起来");
}
}
抽象类的使用要点:
- 有抽象方法的类整你定义为抽象类
- 抽象类不可以实例化,即不可以用new方法来实例化抽象类;
ini
Animal a = new Animal(); // 如果Animal是抽象类,则这样写会编译报错
- 抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
- 抽象类只能用来被继承,不可以用来new
- 抽象方法必须被子类实现