- 一个没有方法体的方法称为抽象方法,类中有抽象方法,必须定义为抽象类
- 抽象类和抽象方法必须用abstract关键字修饰:
public abstract class 类名{}
public abstract void 方法名();
- 抽象类不能实例化,抽象方法本身没有实现任何方法语句,这个抽象方法本身是无法实行的,所以这个类也不能实例化
- 因为抽象类本身设计成只用于被继承,因此抽象类可以强迫子类必须实现其定义的抽象方法,相当于子类必须重写这个方法
- 所以抽象类的子类,要么重写抽象类中所有的抽象方法,要么是抽象类
package Experience;
public abstract class Animal {
private String name;
private int age;
Animal(){
}
Animal(String name,int age){
this.name=name;
this.age=age;
}
public abstract void act();
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
package Experience;
public class Cat extends Animal{
Cat(){
}
Cat(String name,int age){
super(name, age);
}
@Override
public void act(){
System.out.println("猫抓老鼠");
}
}
package Experience;
public class Test {
public static void main(String[] args){
Animal a=new Cat();
a.act();
}
}