在父类Base和子类Sub中都定义了成员变量var及成员方法method()。在Sub类中,可通过super.var和super.method()来访问Base类的成员变量var及成员方法method()。
时间: 2023-06-25 18:08:08 浏览: 41
是的,您说得对。在Java中,使用关键字super可以在子类中访问父类中的成员变量和成员方法。具体来说,super.var可以访问父类中的成员变量var,而super.method()可以调用父类中的成员方法method()。这样做可以方便地在子类中重写父类的方法或者调用父类的方法实现代码逻辑的复用。
相关问题
c++ 父类指针和子类指针
在C++中,可以使用父类指针和子类指针来实现多态性。多态性是面向对象编程中的一个重要概念,它允许我们使用一个父类指针指向一个派生类对象,从而可以通过该指针调用派生类对象的成员函数。
假设有一个基类 `Base` 和两个派生类 `Derived1` 和 `Derived2`,可以通过以下方式使用父类指针和子类指针:
1. 父类指针指向派生类对象:
```
Base* ptr = new Derived1(); // 使用父类指针指向 Derived1 对象
// 或者
Base* ptr = new Derived2(); // 使用父类指针指向 Derived2 对象
```
2. 子类指针也可以直接指向派生类对象:
```
Derived1* ptr = new Derived1(); // 使用子类指针指向 Derived1 对象
// 或者
Derived2* ptr = new Derived2(); // 使用子类指针指向 Derived2 对象
```
通过使用父类指针,可以实现对派生类对象的访问和操作。然而,需要注意的是,父类指针只能访问到派生类对象中属于父类的成员和方法,而无法直接访问派生类特有的成员和方法。若需要访问派生类特有的成员和方法,则需要进行类型转换。
希望以上解答能够帮助到你!如果对此还有疑问,请继续提问。
base.如何定义变量
在面向对象编程中,`base` 是一个关键字,它表示当前类的基类。通过 `base` 关键字,我们可以在子类中访问父类中的成员变量和成员方法。
如果你需要在父类中定义一个变量,可以在父类中添加一个成员变量,例如:
```
public class ParentClass {
protected int myVariable;
// ...
}
```
在子类中,可以通过 `base` 关键字来访问父类的 `myVariable` 变量:
```
public class ChildClass : ParentClass {
public void MyMethod() {
base.myVariable = 42;
// ...
}
}
```
这样,就可以在子类中修改父类的成员变量了。注意,子类只能访问父类中被声明为 `public` 或 `protected` 的成员变量。如果父类中的成员变量被声明为 `private`,则子类无法直接访问它们。