子类访问父类成员
首先当子类继承了父类,因此子类(当继承方式为public或
protected
时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量
② java子类中如何访问和修改父类成员
根据父类成员的访问权限修饰词分为两种情况:
①父类成员域由private修饰,那么在子类中不能直接访问父类成员域,但是可以通过父类中的公共方法访问以及修改父类成员域。如:
class FatherClass{
private int a;
public int geta(){ return a;}
public void seta(int a){this.a=a;}
}
则在子类中可以通过geta获得父类的成员域的值,通过seta修改父类成员域的值
②父类成员由public或protected或default(不写访问权限修饰词),在子类中可以直接访问父类成员域,可以修改继承的父类成员域,但是不能直接修改父类本身的成员域(可以通过上面所说的public void seta(int a){this.a=a;}对父类本身的成员域进行修改),以下是示例代码:
父类本身的a与子类从父类继承的a占据两个不同的独立的存储空间,在继承之后,他们的值互不相干(继承的时候进行值传递),这样可以避免因为子类中的操作而导致对父类的a的值进行预期结果之外的修改
③ C#中在子类中访问父类成员的关键字是什么
使用base.调用父类里面的属性
public class parent
{
public string a;
}
public class child :parent
{
public string getparent()
{
return base.a;
}
}
④ 关于子类访问父类私有成员变量问题,大神来看看
楼上说错了,就只有一个B实例,没有A实例。
继承的概念,就是把父类的所有东西都继承下来了,包括A类的x成员变量和所有方法,只是在B类里无法直接访问x变量而已。
所以创建的B实例的内存里,也是有x,并为它分配了内存空间的
⑤ C++ 用子类定义的对象 怎么调用父类的成员函数
不一定,要按继承方式分三种情况讨论。
public继承:
可以调用基类中被protected和public修饰的成员变量与成员函数。
protected继承:
可以调用基类中被public修饰的成员变量与成员函数。
private继承:
不可以调用基类中任何成员变量与成员函数。