型別相容 子類的物件可以給父類指標賦值

2022-07-17 22:42:16 字數 701 閱讀 5377

乙個公有派生類的物件在使用上可以被當做基類的物件,反之禁止。

也就是說:1.派生類的物件可以賦值給基類的物件

b:public

a

a a;

b b;

a = b;//

語法上是允許的

2、派生類的物件可以初始化基類的引用:

void f(a &a)

{}int

main()

3、指向基類的指標可以指向派生類

a *p;

p = new b();

例子:

#include using

namespace

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 ...