子类调用父类方法(super关键字)

本文通过一个Java继承的例子展示了如何实现子类Pad3继承自父类Computer3,并重写了sayHello方法。代码中包括了父类Computer3的方法定义以及子类Pad3的具体实现。
package testextends;

public class Pad3 extends Computer3{  //子类:平板电脑
	
	String sayhello(){             //重写父类方法‘打招呼’
		return super.sayHello()+ "ipad";//调用父类方法并添加字符串
	}
	public static void main(String[] args) {
		Computer3 pc = new Computer3();     //实例化父类对象
		System.out.println(pc.sayHello());
		Pad3 iPad =new Pad3();  //实例化子类对象
		System.out.println(iPad.sayhello());
	}

}
class Computer3{           //父类:电脑	

	public String sayHello() { //方法:打招呼
		return "欢迎使用";
	}
}

选项A和选项C关于Java中`super`关键字的说法是正确的,而选项B和选项D的说法错误,以下是具体分析: - **选项A**:当子类父类中成员变量重名时,可以使用`super`关键字进行区分。例如: ```java class Parent { String name = "Parent"; } class Child extends Parent { String name = "Child"; void show() { System.out.println("name: " + name); // 访问子类的name System.out.println("super.name: " + super.name); // 访问父类的name } } ``` 在上述代码中,`super.name`访问的是父类的`name`变量,而`name`访问的是子类的`name`变量,这体现了`super`关键字在区分重名成员变量时的作用[^1][^2]。 - **选项B**:使用`super`调用父类构造方法时,必须放在构造函数的第一行,而不是任意一行。这是因为Java要求在子类对象初始化时,必须先初始化父类部分,如果不将`super()`放在第一行,就可能导致父类部分未被正确初始化。例如: ```java class Parent { Parent() { System.out.println("Parent constructor"); } } class Child extends Parent { Child() { // 正确做法,放在第一行 super(); System.out.println("Child constructor"); } } ``` - **选项C**:子类可以通过`super`关键字调用父类方法。当子类覆盖了父类的某个方法时,使用`super`关键字可以调用父类的原始方法。例如: ```java class Parent { void display() { System.out.println("Parent display method"); } } class Child extends Parent { @Override void display() { System.out.println("Child display method"); } void show() { display(); // 调用子类的display方法 super.display(); // 调用父类的display方法 } } ``` 在上述代码中,`super.display()`调用的是父类的`display`方法,而`display()`调用的是子类重写后的`display`方法[^1][^2]。 - **选项D**:`super`关键字子类用来访问父类的成员变量、方法和构造方法的,父类不能通过`super`关键字调用子类的属性。因为`super`的设计初衷是为了在子类中处理与父类相关的操作,而不是在父类中操作子类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThinkPet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值