2013-07-25 45 views
1

我創建一個圖書館,我從類主要從身體引用從另一個類繼承

繼承

public class Main:Body

我加入主我使用的引用,但引用類,當我去啓動實例 - 我試過:

Main _main = new Main()它強調new Main()說,它不包含一個構造函數,它接受0參數。

我怎麼能適當調整是,所以我引用的類 - 我需要包括繼承的類呢?

+1

使一個構造...'公衆的Main()' – Sayse

回答

3

Main _main = new Main()它強調新Main()說,它不包含一個構造函數參數0。

這是告訴你到底是什麼問題。沒有上Main一個公共構造零個參數。

你需要做以下之一:

  1. 添加一個公共構造零個參數:public Main() { }
  2. 調用Main類的公共構造方法:如果簽名是public Main(object o)那麼你會說Main _main = new Main(o)其中o是某個對象。

讓我們來看一個例子:

class Foo { 
    public Foo() { } 
} 

此類具有零個參數的公共構造。因此,我可以通過

Foo foo = new Foo(); 

構建實例讓我們來看看另一個例子:

class Bar { 
    public Bar(int value) { } 
} 

該類執行具有零個參數的公共構造。因此,我可以通過

Bar bar = new Bar(); // this is not legal, there is no such constructor 
        // the compiler will yell 

建設實例,但我可以

Bar bar = new Bar(42); 

另外還有一個:

class FooBar { } 

該類具有公共構造零個參數。它確實是因爲如果你做而不是提供任何構造函數,編譯器將自動提供一個公共構造函數零參數默認。因此,這是合法的:

FooBar fooBar = new FooBar(); 
+0

所以,如果我有'公共類主營:Body'其中體有一個構造函數以0參數 - 我可以使用'體body = new Body()',我仍然可以訪問'Main'中的方法嗎? – Masriyah

+0

@ loop852:沒有。像這樣看。 '公共類SiameseCat:Cat'和'Cat'具有零參數的公共構造函數。 'Cat cat = new Cat();'我可以訪問'SiameseCat'的方法嗎?不,因爲不是所有的貓都是SiameseCat。 – jason

+1

感謝您的解釋 - 我能通過傳遞所需的參數找到我的解決方案。謝謝一堆 – Masriyah