2013-12-19 67 views
0

具有默認構造函數的Abstract類和具有私有構造函數的類之間有什麼區別?具有默認構造函數和具有私有構造函數差異的類的抽象類

我也有另一個疑問, 考慮下面這個程序。任何人都可以請解釋我。這樣的代碼有什麼用處嗎?

abstract class AbstractAndPrivate 
{ 
AbstractAndPrivate() 
{ 
    AbstractAndPrivate ref= new AbstractAndPrivate(1) { 

     @Override 
     int m2() { 
     // TODO Auto-generated method stub 
     return 0; 
     } 
        }; 

      } 
void m1() 
{ 
    System.out.println("m1() accessed"); 
} 
abstract int m2(); 

AbstractAndPrivate(int a) 
{ 

} 
public static void main(String[] args) { 

System.out.print("hello "); 

AbstractAndPrivate ref= new AbstractAndPrivate() {public int m2(){return 1;}}; 
System.out.println(ref); 
ref.m1(); 
ref.m2(); 
} 
} 

回答

3

什麼是一個默認的構造函數和私人構造函數的類的抽象類的區別?

如果有一個默認構造函數,它將從子類中調用。如果它是專用,那麼只能在同一個類中創建子類,因爲這是唯一可訪問私有構造函數的上下文。

請注意,您所提供的代碼是沒有這些情況 - 這是明確提供一攬子保護參數的構造函數。這不是私有的,它不是默認的構造函數。

無論是抽象類或不正交於它所提供的構造函數,雖然只有私有構造力量的抽象類,你要以創建實例,而不是僅僅依賴於創建聲明類中您在聲明類中創建實例

0

也,抽象類可以有一個抽象方法,需要由子類實現(除非他們過於抽象)

編輯:-1?抽象方法也可以解釋抽象類和具有私有構造函數的類之間的邏輯差異。請...

相關問題