作者pttnews (PTT新聞)
看板java
標題Re: [問題] 內部class可繼承嗎?
時間Wed Nov 28 15:08:23 2012
※ 引述《tsaiminghan (nahgnimiast)》之銘言:
: 有個class大約如下
: 外部class的funOut函式使用內部class的funcInner函式做事情。
: ----------------------------------------------
: public class out {
: private class inner{
: public void funcInner(){}
: }
: public void funOut(){
: inner i = new inner();
: i.funcInner();
: }
: }
: ----------------------------------------------
: 我的問題是現在繼承了out物件,但是想改內部class
: 的funcInner的行為,這語法有沒有支援?
: 我現在唯一會的就是把funOut和class inner全部複製到
: 新的class,然後修改funcInner,有比較好的寫法嗎?
應該可以吧~
class out {
private class inner{
public void funcInner(){
System.out.println("out.inner.funcInner");}
}
public void funOut(){
System.out.println("out.funOut");
inner i = new inner();
i.funcInner();
}
public out(){
System.out.println("out");
}
}
class out2 extends out {
public void funOut(){
System.out.println("out2.funOut");
super.funOut();
}
public out2(){
System.out.println("out2");
funOut();
}
}
public class Test {
public static void main(String[] args) {
System.out.println("1");
out o1 = new out();
System.out.println("2");
out2 o2 = new out2();
System.out.println("3");
}
}
輸出
1
out
2
out
out2
out2.funOut
out.funOut
out.inner.funcInner
3
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.175.188
→ byend:有創意..但跟原文解題目的好像不相干? 11/28 15:41
→ pttnews:有干!證明 inner Class 可以繼承使用 11/28 16:28
推 PsMonkey:可以使用? 可以繼承? 11/28 17:44
推 LaPass:原PO是打算在繼承的中class繼承inner class 11/28 17:48
→ pzyc79:很好你繞一圈呼叫了inner其中一個方法 但是繼承只有這樣嗎? 11/28 21:20