A 抽象类
抽象类前使用abstract 关键字修饰,则该类为抽象类.
1、抽象类约束子类所用的方法,不关心方法如何实现;
2、具有多个相同特征的类抽象成一个抽象类,避免重复设计.例如我们所吃的蔬菜类、肉类、面类、米类等,都可以抽象为食物类,人也是一个抽象类,分为男人、女人,再细分可分为青年、壮年、老年、儿童等;
3、抽象方法必须在抽象类中,但抽象类不一定含有抽象方法;
4、抽象类在检测时不能直接调用,可以另建一个类继承父类,从而完成调用.
例如:
public abstract class Person {
private String name;
//Chicken w = new Chicken();
//String q = w.setName();
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void speak(); //抽象方法
}
public class 美国人 extends Person {
public 美国人(String name) {
super(name);
}
public void speak() {
System.out.println("英语");
}
}
public class TestDuotai {
public static void main(String[] args) {
Person s = new 美国人("示范");//new 父类的子类 子类继承父类 父类抽象化
Chicken c = new Chicken();
//Food f = new Food();
Duck d = new Duck();
Fish f = new Fish();
//Food aa= new Food();
//s.eat(aa); // 无意义
s.eat(c);
s.eat(d);
s.eat(f);
}
}