public static void main(String[] args){
fu f = new zi();
System.out.println(f.num);//10(取父類)
/*成員變量:
編譯看左邊(父類),運行看左邊(父類)
成員方法:
編譯看左邊(父類),運行看右邊(子類)
*/
f.show();//zi..show(取子類)
}
class fu{
int num = 10;
public void show(){
System.out.println("Fu...show");
}
}
class zi extends fu{
int num = 20;
@Override
public void show(){
System.out.println("zi...show");
}
}
public static void main(String[] args){
fu f = new zi();
System.out.println(f.num);//10(取父類)
/*成員變量:
編譯看左邊(父類),運行看左邊(父類)
成員方法:
編譯看左邊(父類),運行看右邊(子類)
*/
f.show();//zi..show(取子類)
System.out.println("---------------");
Inter i = new InterImpl();
i.method();//method...(取子類,因為擔心你的父類方法是抽象方法)
}
interface Inter{
void method();
}
class InterImpl implements Inter{
@Override
public void method(){
System.out.println("method...");
}
}
class fu{
int num = 10;
public void show(){
System.out.println("Fu...show");
}
}
class zi extends fu{
int num = 20;
@Override
public void show(){
System.out.println("zi...show");
}
}
public static void main(String[] args){
fu f = new zi();
System.out.println(f.num);
f.show();//zi..show(取子類)
f.print();//fu...print(父類)
//這行進行編譯之後其實會將對象名調用替換成
//類名調用 --> fu.print()
zi.print()//靜態方法推薦使用類名調用
// zi...print
}
class fu{
int num = 10;
public void show(){
System.out.println("fu...show");
}
public static void print(){
System.out.println("fu...print");
}
}
class zi extends fu{
int num = 20;
@Override
public void show(){
System.out.println("zi...show");
}
public static void print(){
System.out.println("zi...print");
}
}