c子類訪問父類
❶ c++子類訪問父類私有成員
一般好的項目,代碼風格,設置成private的成員變數,不應該直接訪問它的,最好為Circle::r寫個成員函數,就可以間接訪問了。比如
int Circle::Getr()
{
return r
}
另外,如果你非要不該父類的情況下訪問,也是可以的,比如用類的成員指針,具體使用不好理解,風格不好。
❷ 子類要調用父類的方法,必須使用super關鍵字.對嗎
在繼承結構裡面,為了保護封閉原則,通常子類以繼承之後,子類可以直接調用父類非私有方法,也就是除了private修飾的方法。
從多太的角度來看,子類是可以繼承父類的方法,如果一個子類繼承了父類的方法,那麼不用super關鍵字就是調用本類的方法,如果想調用父類的話就要加super。
比如:
public
abstract
class
TestA(){
public
void
a(){
System.out.println("this
is
a
method.");
}
protected
void
b(){
System.out.println("this
is
b
method.");
}
private
void
c(){
System.out.println("this
is
c
method.");
}
}
public
class
TestC
extends
TestA(){
//該方法為子類方法,非父類方法。
public
void
aa(){
super.a();
//Yes
a()://
Yes
等同
super.a();
super.b();
//Yes
b();
//Yes
等同
super.b();
super.c();
//
no
訪問不到。
c();
//
NO
訪問不到。
}
//覆蓋父類方法
protected
void
b(){
System.out.println("this
is
TestC
b
method.");
}
public
void
d(){
b();
//調用本類的方法
super.b();
//調用父類的方法
}
}
❸ C++如何調用父類的方法
C++通過子類調用父類函數fun();
子類和父類函數名一樣的函數fun,如果參數不一樣,不管加不加virtual,當子類調用fun()時,會先在子類中找,找不到會報錯。
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
(3)c子類訪問父類擴展閱讀:
C++語言特點:
1、支持繼承和重用
在C++現有類的基礎上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結構,明確類間關系,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
2、支持多態性
採用多態性為每個類指定表現行為。多態性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每個子類可以接收一個或多個具有相同名字的消息。當一個消息被這個樹中一個類的一個對象接收時,這個對象動態地決定給予子類對象的消息的某種用法。多態性的這一特性允許使用高級抽象。
繼承性和多態性的組合,可以輕易地生成一系列雖然類似但獨一無二的對象。由於繼承性,這些對象共享許多相似的特徵。由於多態性,一個對象可有獨特的表現方式,而另一個對象有另一種表現方式。
參考資料來源:網路-C++
❹ C++公有繼承,子類訪問父類成員問題
可以在C中通過get訪問父類x。只是你的示例代碼有好幾個語法錯誤。
classA{
protected:
intx;
public:
voidset(inti){
x=i;
}
intget(){ //返回值類型為int
returnx;
}
};
classB:publicA{
inty;
}; //要加分號
classC:protectedB{
public:
voidset(intx){
B::set(x);
}
intget(){
returnB::get();
}
}; //要加分號
intmain(){
Cc;
c.set(123);
cout<<c.get();
}
❺ C++中子類可以直接調用父類實現的函數嗎
子類能不能調用父類的函數與繼承方式有關,C++有三種繼承方式:
1.公用繼承(public):對於基類成員在派生類中保持自己原來的的訪問級別,原來是public(private/ protected),在派生類中也還是public(private/protected)。
2.受保護繼承(protected):基類中的public成員和protected成員在派生類中為protected,private成員類型不變。
3.私有繼承(private):積累的所有成員在派生類中都是private的。
類中的成員有三種訪問類型:
1.public成員在調用類的函數里可以使用。
2.private成員只能在類的組成部分內使用,如類的定義體,類的成員函數的定義體里。
2.protected成員可以看做是前兩者的混合:他像private成員一樣不能被類的用戶訪問,像public成員一樣可被該類的派生類訪問。
❻ objective-c子類對象調用父類方法
直接調用[son eat];
如果你子類重寫了eat,再想調用父類的,可以[super eat];
希望能幫助到你。