java子类中如何访问和修改父类成员

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java子类中如何访问和修改父类成员相关的知识,希望对你有一定的参考价值。

假如一个子类的函数中用到一个参数,这个参数是父类的,怎么用??
例如:
父类:Goods中有重量
子类:book继承Goods,book中有个函数用到重量.....

根据父类成员的访问权限修饰词分为两种情况:

①父类成员域由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的值进行预期结果之外的修改

参考技术A 通过父类提供的setter/getter方法 参考技术B 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。
子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。Java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。
参考技术C 这就要看你用的这个参数在父类的访问权限修饰符是private,public,protected还是default(即什么都没写),下面分别说明:
1.当该参数的访问修饰符为private时.子类的函数不能接着访问该参数,如果要访问该参数,你可以通过在父类中声明该参数的getter和setter方法,这样就可以供外界访问该参数了。
如:getter方法:public String getName()
return name;

setter方法:public void setName(String name)
this.name = name;

2.当该参数的访问修饰符为public,protected或default时。由于子类可以从父类中继承所有声明为public,protected或default的方法或属性,所以子类的函数就可以直接使用该参数了。本回答被提问者和网友采纳
参考技术D 用super关键字就好了,super代表的是引用父类对象

Java子类访问父类的私有成员变量

/**子类会继承父类所有的属性和方法。
* 但是根据不同的权限标识符,子类不可见父类的私有变量,但可以通过父类的公共方法访问私有变量
* 所以对于重名变量,子类和父类都各有一份。
* 对于子类和父类中重名的方法,则为重写。即子类重写了父类的方法,用于多态。
* 同一个类中函数的签名不同,则为方法的重载。函数的签名为函数名+参数列表,与返回值无关。

*/

以上是关于java子类中如何访问和修改父类成员的主要内容,如果未能解决你的问题,请参考以下文章

java父类调用子类变量

java父类调用子类变量

用java编写的一个父类两个子类并且父类里含有三个成员变量五个成员方法,子类一里加两个成员方法和变量。

子类如何访问父类

java中怎么样调用父类中的成员变量的值?谢谢!!!

通过反射访问父类的私有成员