子类从父类继承过来的方法可以操作子类自己定义的成员变量吗
4个回答
推荐于2016-02-19
展开全部
一楼回答的不错。如果我回答的话,这样说,
1.首先当子类继承了父类,因此子类(当继承方式为public或protected时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量;
2.但父类没继承子类,所以父类没有权利访问(操作)子类的成员变量;
但是你的你想用父类的函数来访问(操作)子类成员的话,可以在子类再定义一个父类的同样一个函数,用虚函数;然后用父类指针指向子类对象,来解决你的问题。这个后面再学的学的知识,现在暂时可以认为“不能操作子类自己定义的成员变量”。
1.首先当子类继承了父类,因此子类(当继承方式为public或protected时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量;
2.但父类没继承子类,所以父类没有权利访问(操作)子类的成员变量;
但是你的你想用父类的函数来访问(操作)子类成员的话,可以在子类再定义一个父类的同样一个函数,用虚函数;然后用父类指针指向子类对象,来解决你的问题。这个后面再学的学的知识,现在暂时可以认为“不能操作子类自己定义的成员变量”。
展开全部
你好,一楼回答的不错。如果我回答的话,这样说,
1.首先当子类继承了父类,因此子类(当继承方式为public或protected时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量;
2.但父类没继承子类,所以父类没有权利访问(操作)子类的成员变量;
但是你的你想用父类的函数来访问(操作)子类成员的话,可以在子类再定义一个父类的同样一个函数,用虚函数;然后用父类指针指向子类对象,来解决你的问题。这个后面再学的学的知识,现在暂时可以认为“不能操作子类自己定义的成员变量”。
1.首先当子类继承了父类,因此子类(当继承方式为public或protected时)可以访问及改动父类的public成员,但访问或改不了私有成员和不可访问变量;
2.但父类没继承子类,所以父类没有权利访问(操作)子类的成员变量;
但是你的你想用父类的函数来访问(操作)子类成员的话,可以在子类再定义一个父类的同样一个函数,用虚函数;然后用父类指针指向子类对象,来解决你的问题。这个后面再学的学的知识,现在暂时可以认为“不能操作子类自己定义的成员变量”。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个问题其实问的不太专业,我猜应该是c++初学者吧。
如果按照你的意思的话,你就是重载了父类的该方法,这时是可以操作子类定义的变量的。
如果按照你的意思的话,你就是重载了父类的该方法,这时是可以操作子类定义的变量的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.jackshow.parent;
public class Point {
private String x;
private String y;
/**
* 默认构造函数
*/
public Point(){
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
package net.jackshow.child;
import net.jackshow.parent.Point;
public class Point3D extends Point{
static int c=0;
public Point3D(){
super();
c++;
}
public static void main(String[] args){
Point3D child = new Point3D();
Point3D child1 = new Point3D();
System.out.println("x="+child.getX()+",y="+child.getY()+",c="+c);
}
}
第3,你在class前面加上abstract,接口则把class改为interface,然后变量全部改为public的
public class Point {
private String x;
private String y;
/**
* 默认构造函数
*/
public Point(){
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
package net.jackshow.child;
import net.jackshow.parent.Point;
public class Point3D extends Point{
static int c=0;
public Point3D(){
super();
c++;
}
public static void main(String[] args){
Point3D child = new Point3D();
Point3D child1 = new Point3D();
System.out.println("x="+child.getX()+",y="+child.getY()+",c="+c);
}
}
第3,你在class前面加上abstract,接口则把class改为interface,然后变量全部改为public的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询