interface CanSwim{
void swim();//默认public
}
interface CanFly{
void fly();//默认public
}
public interface CanFight {
void fight();//默认public
}
class ActionChapater{
//这个fight必须是public,因为它会被自己的子类复用,间接实现接口中的方法
public void fight(){}
}
//java可以实现多重继承,但只能同时继承一个类和多个接口,书写形式是先写类,再写接口
class Hero extends ActionChapater implements CanFight,CanFly,CanSwim{
//这里只实现了两个接口中的方法,第一个接口中的方法直接从基类继承,这里就要求基类中的该方法必须是public
public void swim(){}
public void fly(){}
}
//该类最后由五部分组成:基类,接口1,接口2,接口3,自身特性,进行上溯造型时,各部分只针对各部分的内容进行操作
public class Adverture {
//比较明显的现象,接口也可以作为一个“基类”作为参数进行上溯造型
static void t(CanFight x) {x.fight();}//上溯为第二部分
static void u(CanFly x) {x.fly();}//上溯为第三部分
static void v(CanSwim x) {x.swim();}//上溯为第四部分
static void w(ActionChapater x){x.fight();}//上溯为第一部分
/**
* @param args
*/
public static void main(String[] args) {
Hero hero = new Hero();
t(hero);//上溯造型
u(hero);//上溯造型
v(hero);//上溯造型
w(hero);//上溯造型
}
}