10.8 继承实例

这一节我们来设计一个继承的例子。 首先,是一个抽象类Container(容器),容器是抽象的,不是具体的,就好像水果、食物也是抽象的,所以定义成抽象的。它里面有一个函数,计算容器的容量并返回,这个函数需要具体的子类来决定。
/**
容器类
 */
public abstract class Container{
    /**
    返回容器的容量
     */
    public abstract double contain();
}
接下来是一个继承了容器的水杯类,表示这个容器是用来装水的
/**
水杯类继承容器类
 */
public class WaterCup extends Container{
 
    @Override
    public double contain(){
        return 15;
    }
}
WaterCup这个类是一种容器,它的容量是15。 接下来有一个接口,它表示可以加热的功能,里面有一个加热方法warm
/**
可加热接口
 */
public interface IWarmable{
    /**
    加热
     */
    public void warm();
}
然后出现了一种可加热的杯子,它继承了上面的水杯,同时具有加热功能
/**
杯子继承水杯,实现可加热接口
 */
public class Cup extends WaterCup implements IWarmable{
 
    @Override
    public void warm(){
        System.out.println("加热");
    }
 
    @Override
    public double contain(){
        return 15;
    }
}
这就是一个简单的例子,抽象类Container,WaterCup继承Container,同时实现了容量函数,IWarmable是可加热的功能,Cup继承了WaterCup,实现IWarmable,也就是说它可以加热,也是WaterCup的一种。