方法对于类没有定义子类调用父类
时间: 2023-08-22 20:19:51 浏览: 38
你可以使用Python中的super()函数来调用父类的方法。super()函数返回一个临时对象,该对象可以让你调用父类的方法。例如,假设你有一个子类SubClass,它继承自父类ParentClass,且你想在子类中调用父类的方法parent_method(),你可以这样写:
```
class ParentClass:
def parent_method(self):
print("This is a parent method")
class SubClass(ParentClass):
def child_method(self):
super().parent_method()
print("This is a child method")
obj = SubClass()
obj.child_method()
```
在上面的代码中,我们在子类的child_method()方法中使用了super().parent_method()来调用父类的parent_method()方法。注意,我们没有使用父类的名称来调用该方法,而是使用了super()函数。这是因为super()函数能够自动确定父类的名称,这样就可以避免在代码中硬编码父类的名称,并且也能够正确地处理多重继承的情况。
相关问题
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 ]