super是指子类中的父类对象吗
时间: 2024-02-02 11:04:20 浏览: 20
不完全正确。super关键字并不是指子类中的父类对象,而是指子类对象中与父类同名的方法或成员变量所对应的父类中的方法或成员变量。
当子类和父类中出现同名的方法或成员变量时,使用super关键字可以访问父类中的方法或成员变量。这是因为子类会覆盖父类中的同名方法或成员变量,如果要访问父类中被覆盖的方法或成员变量,就需要使用super关键字。
在子类中使用super关键字调用父类的方法时,调用的是父类中的方法实现,而不是子类中的方法。在子类中使用super关键字访问父类的成员变量时,访问的是父类中的成员变量,而不是子类中的成员变量。
需要注意的是,子类对象中包含了父类对象中的所有成员变量和成员方法,但不包括私有成员,因此可以使用super关键字访问父类中的所有可见成员。
相关问题
如何在子类中声明父类对象
在子类中声明父类对象需要使用super关键字。在Java中,子类可以通过super关键字调用父类的构造方法和成员方法。下面是一个示例代码:
```
public class ParentClass {
// 父类的成员变量和方法
}
public class ChildClass extends ParentClass {
private ParentClass parent; // 声明父类对象
public ChildClass() {
super(); // 调用父类的构造方法
parent = new ParentClass(); // 创建父类对象
}
// 子类的成员变量和方法
}
```
在子类中声明父类对象时,需要在子类的构造方法中使用super()调用父类的构造方法,并且使用new关键字创建父类对象。这样就可以在子类中使用父类的成员变量和方法了。
java子类继承父类不调用super方法会执行父类方法吗?
如果子类继承了父类的某个方法并且在子类中没有重写该方法,那么当子类对象调用该方法时,将会执行父类的方法。如果子类重写了该方法,那么子类对象调用该方法时将会执行子类的方法。如果子类重写了父类的方法,而且子类中的方法中没有调用父类的方法,那么父类的方法将不会被执行。如果子类中重写的方法中调用了super关键字,那么父类中的方法也会被执行。所以,如果子类继承父类的方法且没有重写该方法,那么即使子类不调用super方法,也会执行父类的方法。