方法对于类没有定义子类调用父类
时间: 2023-08-22 12:19:52 浏览: 40
如果一个父类的方法没有在子类中被定义,但是子类想要调用父类的该方法,可以使用`super()`函数来调用父类的方法。`super()`函数会返回一个代理对象,通过该代理对象可以调用父类的方法。例如,在子类中调用父类的`__init__()`方法可以这样写:
```python
class ChildClass(ParentClass):
def __init__(self, arg1, arg2):
super().__init__(arg1)
self.arg2 = arg2
```
这里的`super().__init__(arg1)`调用了父类的`__init__()`方法,并将`arg1`传递给它。这样,子类就可以继承父类的初始化逻辑,并在此基础上进行自己的初始化。
相关问题
java子类调用父类重写方法
当子类重写了父类的方法之后,如果要在子类中调用父类的被重写的方法,可以使用`super`关键字。具体步骤如下:
1. 在子类中定义一个与父类中被重写的方法名称和参数列表完全相同的方法。
2. 在子类的方法中使用`super.被重写的方法名称()`来调用父类中被重写的方法。
例如,假设父类中有一个`printInfo`方法,子类中重写了该方法。如果需要在子类中调用父类中被重写的`printInfo`方法,可以按照以下方式实现:
```java
public class Parent {
public void printInfo() {
System.out.println("This is parent class.");
}
}
public class Child extends Parent {
@Override
public void printInfo() {
System.out.println("This is child class.");
}
public void printParentInfo() {
super.printInfo(); // 调用父类中被重写的printInfo方法
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.printInfo(); // 输出 "This is child class."
child.printParentInfo(); // 输出 "This is parent class."
}
}
```
子类调用父类的模板函数
子类调用父类的模板函数可以通过使用作用域解析运算符(::)来实现。在子类中,可以使用父类的模板函数,语法为父类名<T>::函数名。引用中的代码示例展示了这种用法。在Derived类中,通过this指针调用了Base类的bar()函数。在Stack类的push函数中,可以通过VectorX<T>::aaaa()来调用父类VectorX的aaaa()函数。这样就可以在子类中调用父类的模板函数了。<em>1</em><em>2</em><em>3</em>
#### 引用[.reference_title]
- *1* [在C++中子类继承和调用父类的构造函数方法](https://blog.csdn.net/rusbme/article/details/97932414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
- *2* [父类为模板类,子类继承父类调用父类的方法常见错误](https://blog.csdn.net/a4364634611/article/details/123941521)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
- *3* [模板类中子类调用父类的函数找不到定义的问题](https://blog.csdn.net/qq_53146319/article/details/125300658)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item]
[ .reference_list ]