栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

super() 方法的用法及作用?

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

super() 方法的用法及作用?

有如下Java类:
public class Bird{
private String name;
public Bird() { }
public Bird(String name){ this.name = name; }
public void walk() { System.out.println(“走路”); }
public String getName(){ return name; }
public void setName(String name){ this.name = name; }
}

另有一个类Chicken继承上边的Bird类;
public class Chicken extends Bird{
private String crest;
public Chicken(){ super(); }
public Chicken(String name,String crest) {
super(name);
this.name = name; }
………….
}
在第二个自定义的类Chicken中,super()方法一共出现了两次,分别是super()和super(name),请问super() 是什么含义,放在这里又作何解释?

参考答案:
1.子类的构造过程中必须调用父类的构造方法
2.子类可在自己的构造方法中使用super()来调用父类的构造方法
(1)使用this来调用本类的另外的构造方法
(2)如果调用super必须写在子类构造方法的第一行
3.如果子类的构造方法中没有显示的调用父类的构造方法,则系统默认的调用父类的无参的构造方法。
4.如果子类的构造方法中既没有显示调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错。

那你这里第一个super()无参的就是调用了上面Bird类的Bird() 方法!

super(name)这个有参数就是调用public Bird(String name){
this.name = name; 这个方法!super() 是调用父类的构造函数,你例子中有Bird()和Bird(String name)两个方法,super()是调用Bird()构造函数,而super(name)是调用Birth(String name)构造函数。注意super() 调用的是对应参数个数和类型相同的父类构造函数。 public Chicken(String name,String crest) { super(name); this.name = name; } 应该重复了吧,super(name)应该就是this.name = name。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/264418.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号