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的一种。