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];
希望能帮助到你。