Java中super关键字怎么用?

接下来通过一个案例来学习如何使用super关键字调用父类的成员变量和成员方法,如文件1所示。

文件1 Example03.java

// 定义Animal类

class Animal {

String name = “动物”;

// 定义动物叫的方法

void shout() {

System.out.println(“动物发出叫声”);

}

}

// 定义Dog类继承动物类

class Dog extends Animal {

String name = “犬类”;

// 重写父类的shout()方法

void shout() {

super.shout(); // 访问父类的成员方法

}

// 定义打印name的方法

void printName() {

System.out.println(“name=” + super.name);// 访问父类的成员变量

}

}

// 定义测试类

public class Example03{

public static void main(String[] args) {

Dog dog = new Dog(); // 创建一个dog对象

dog.shout(); // 调用dog对象重写的shout()方法

dog.printName(); // 调用dog对象的的printName()方法

}

}

运行结果如图1所示。

1621324565451_11.jpg

图1 运行结果

文件1中,定义了一个Dog类继承Animal类,重写了Animal类的shout()方法并重新定义了子类的name属性。在子类Dog的shout()方法中使用“super.shout()”调用了父类被重写的方法,在printName()方法中使用“super.name”访问父类的成员变量。从运行结果可以看出,子类通过super关键字成功地访问了父类成员变量和成员方法。

(2)使用super关键字调用父类的构造方法,具体格式如下:

super([参数1,参数2…])

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】

接下来就通过一个案例来学习,如何使用super关键字来调用父类的构造方法,如文件2所示。

文件2 Example04.java

// 定义Animal类

class Animal {

// 定义Animal类有参的构造方法

public Animal(String name) {

System.out.println(“我是一只” + name);

}

}

// 定义Dog类继承Animal类

class Dog extends Animal {

public Dog() {

super(“沙皮狗”); // 调用父类有参的构造方法

}

}

// 定义测试类

public class Example04 {

public static void main(String[] args) {

Dog dog = new Dog(); // 创建Dog类的实例对象

}

}

运行结果如图2所示。

super关键字

图2 运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值