下面为您详细讲解关于Java继承访问成员变量的完整攻略。
继承的概念
继承是面向对象编程的三大特性之一,其主要作用是扩展已有的类,让子类拥有父类的属性和方法,同时还可以增加和修改子类特有的属性和方法。
访问成员变量的规则
在Java语言中,继承会导致子类拥有父类的非私有成员变量和方法。对于访问成员变量的规则,主要就是看继承的关系:
- 子类可以直接访问父类中被继承的成员变量,就像访问自己的成员变量一样。如果父类中的成员变量和子类的成员变量同名,则可以使用
super
来访问父类的成员变量。示例代码如下:
```java
class Animal {
String name = "Animal";
}
class Dog extends Animal {
void printName() {
System.out.println("Dog name is " + name);
}
}
// 测试代码
Dog dog = new Dog();
dog.printName(); // 输出:Dog name is Animal
```
- 如果当前类中没有找到所需的成员变量,则会去父类中查找,如果父类中也找不到,则会去其父类中查找,直到Object类为止。
示例
为了更好的说明访问成员变量的规则,我们来看两个示例:
示例一
class A {
int x = 10;
}
class B extends A {
int x = 20;
void show() {
System.out.println("x = " + x); // 输出:x = 20
System.out.println("super.x = " + super.x); // 输出:super.x = 10
}
}
// 测试代码
B b = new B();
b.show();
在类B
中,它与其父类A
中都有同名的成员变量x
,当调用B
对象的show()
方法时,变量x
表示的是子类中的x
,而super.x
则表示的是父类中的x
。
示例二
class A {
int x = 10;
}
class B extends A {
void show() {
System.out.println("x = " + x); // 输出:x = 10
}
}
// 测试代码
B b = new B();
b.show();
在类B
中,它没有定义自己的成员变量x
,因此调用B
对象的show()
方法时,变量x
表示的是父类中的x
。
总结
以上就是Java继承访问成员变量的完整攻略。在使用继承时,需要注意成员变量的访问规则,尤其是同名成员变量的情况,这样才能写出正确且具有可读性的代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 继承访问成员变量代码实例 - Python技术站