下面是代碼,我想明白一些事情:基類對象是否包含drived類對象?
public class Test {
public void dosomething() {
Derived2 d2 = new Derived2() ;
Base bobject = d2;
string str = "str" ;
bobject.Method1(str); // I want to call Method1 of Derived1 class
}
}
public class Derived2 : Derived1 {
public void Method1(string s) {
}
}
public class Derived1 : Base {
public override void Method1(double d) {
}
public override void Method2(double d) {
}
}
public abstract class Base {
public abstract void Method1(double d);
public abstract void Method2(double d);
}
我想知道,什麼時候我們給派生類對象,以抽象基類對象到底會發生。我知道實例化抽象類是不可能的。在我的情況下,我派生類Derived1和分配對象Derived2類到基抽象類對象。現在我想訪問Dervied2類方法方法1它接受字符串參數。不知何故,我無法訪問此方法。存在多個從基本抽象類派生的類。我想保留通用的東西。
看到重寫和隱藏之間的區別在這裏描述:http://stackoverflow.com/questions/856449/overloading-overriding-and-hiding。您重寫了double方法,但字符串方法隱藏了Method1 – Ibasa