父類定義一個(gè)private方法子類不可以重寫,那這個(gè)怎么可以重寫。
public?class?Overwrite?{ public?static?void?main(String[]?atgs)?{ B1?b?=?new?B1(); b.fun(); } } class?A1{ private?void?fun()?{ System.out.println("A類中fun()方法執(zhí)行"); } } class?B1?extends?A1{ public?void?fun()?{ System.out.println("B類中fun()方法執(zhí)行"); } }
2017-09-26
http://blog.csdn.net/wn1017888485/article/details/46051981
這個(gè)博客挺能解釋問題的
2017-09-21
在我看來,繼承父類并重寫父類的方法的目的是為了實(shí)現(xiàn)“多態(tài)”,也就是在調(diào)用方法時(shí)優(yōu)先調(diào)用子類的方法
但看了你的代碼,你直接new出來一個(gè)B1的對(duì)象,并運(yùn)行B1的fun();方法,這個(gè)時(shí)候B1是否重寫父類的方法已經(jīng)不重要了!
最好的方式是這樣的:
public class OverWrite {
????public static void main(String args[]) {
????????A1 a1 = new A1();
????????A1 a2 = new B1();
????????a1.fun();
????????a2.fun();
????}
}
class A1{
????public void fun() {
????????System.out.println("A類中fun()方法執(zhí)行");
????}
}
class B1 extends A1 {
????@Override
????public void fun() {
????????System.out.println("B類中fun()方法執(zhí)行");
????}
}