一、抽象类
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的关系)
类可以实现多个接口。
接口可以继承接口。
人能跑(功能性)。