乙個公有派生類的物件在使用上可以被當做基類的物件,反之禁止。
也就是說:1.派生類的物件可以賦值給基類的物件
如
b:publica
a a;
b b;
a = b;//
語法上是允許的
2、派生類的物件可以初始化基類的引用:
void f(a &a){}int
main()
3、指向基類的指標可以指向派生類
a *p;p = new b();
例子:
#include usingnamespace
std;
class b0 //
基類b0宣告
;class b1: public
b0
};class d1: public
b1
};void fun(b0 *ptr)
int main() //
主函式結果:
b0::display()
b0::display()
b0::display()
注意:儘管是將派生的物件賦值給了基類的指標,但全部呼叫的基類的函式,因為在子類中的同名函式會被基類同名函式覆蓋。
父類型別的變數可以指向子類的物件
public class base public static void main string args static void test base base class son extends base class son1 extends base test 方法接收base型別的引數,mai...
子類可以直接賦值給父類,但
子類可以賦值給父類,但是只能用父類有的公有方法和屬性。呼叫公有方法時,如果子類重寫了方法則使用子類重寫的方法,如果沒有重寫就使用父類的方法。呼叫公有屬性時,當子類和父類都有相同屬性時,用的是父類屬性。注意,賦值只是賦值給引用具有父類方法和公有屬性的變數而已,記憶體裡還是指向子類的物件,儲存的是子類的...
測試子類物件賦值給父類的引用
public class testget public void b public class testget2 extends testget public static void main string args 列印結果是bbb 修改下 public class testget public ...