新建一个抽象父类:
//加上abstract 定义抽象类
//抽象类中不一定有抽象方法
public abstract class Animal {
private String name;
private String color;
public Animal() {
super();
}
public Animal(String name, String color) {
super();
this.name = name;
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
//抽象方法 abstract
//对于不知道该怎么实现的方法,我们可以声明为抽象方法
//抽象方法只有声明,没有实现
//如果 一个类包含抽象方法,那么这个类必须声明为抽象类(abstract class)
public abstract void eat();
}
再新建一个子类:
public class Tiger extends Animal {
@Override
public void eat() {
System.out.println("吃人了~");
}
}
新建main方法运行类:
public class Application1 {
public static void main(String[] args) {
/*
* 抽象类的特点:
* 1、不能创建抽象类的对象
* Animal animal = new Animal(); 不能用
* 2、抽象类可以有抽象方法
* 3、抽象类的子类必须实现所拥有的抽象方法,否则子类也要是抽象类
*/
Tiger tiger = new Tiger();
tiger.eat();
//抽象的作用:
//作为模板而存在,定义一组子类共有的属性和方法
//这个模板是没有具体意义的,通过abstract 禁止创建对象
//强制子类必须重写抽象方法
//让程序变得更稳定
}
}