interface A
{
int a = 1;
public abstract void printOut();
}
class B implements A
{
int a = 2;
public void printOut()
{
System.out.println(a);
}
}
class DuoTaiDemo
{
public static void main(String[] args)
{
A b =new B();
b.printOut();//这里调用了b的方法,而b里面有该方法,重写了父类的方法,先看子类里面有没有,没有的话再到父类里面找
}
}
给你我之前写过的思路
孔子爹:教书("JavaSE"),40//孔子爹年龄40,教javaSE
孔子:教书("论语"),玩游戏(),20//孔子年龄20,教论语
//有人找孔子爹去教书,结果只有孔子在家,孔子化妆成爹去教
孔子爹 k爹 = new 孔子(); //向上转型 化妆,装爹。
k爹.教书(); //方法重写,孔子只会教论语,所以是论语
sop(k爹.age); //而年龄是化妆出来的,就是父类的年龄是40
//下课了
孔子 k = (孔子)k爹; //向下转型 去妆,还原本身
孔子 k = new 孔子();
k.教书(); //教书还是只能教论语
sop(k.age); //卸过妆之后年龄就是20
k.玩游戏();可以使用自己独有的方法
看懂这个例子以后遇到什么情况都往这个方向走就可以了
|