一、抽象类public class People {
public void sayHi(){
System.out.println("人会说Hi");
}
public static void main(String[] args) {
People people = new People();
people.sayHi();
}
}
分析:人是一个抽象的全局对象,实例化之后没有意义。如何有意义呢?
通过抽象类限制Person的实例化,让子类去继承父类。
1、定义父类People
public abstract class People{
public abstract void sayHi();
}
2、定义抽象类的实现类,并重写父类方法。
public class Chinese extends People {
@Override
public void sayHi() {
System.out.println("中国人sayHi");
}
public static void main(String[] args) {
People people = new Chinese();
people.sayHi();
}
}
extends反映的是is a的关系(中国人是人)
二、接口(反映的是do what的关系)
类可以实现多个接口。
接口可以继承接口。
人能跑(功能性)。