`
bingtears
  • 浏览: 184672 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java 关于继承中的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; }
}

再定义一个类,同时继承上边的类;
public class Chicken extends Bird{
private String crest;
public Chicken(){ super(); }
public Chicken(String name,String crest) {
super(name);
this.name = name; }
.............
}
我省略了一些代码,应该是对这个问题无关紧要的。在第二个自定义的类中,super()方法一共出现了两次,分别是super()和super(name),请问super() 本身是个什么含义,放在这里又作何解释?希望能用白话而不是JAVA专业术语解释,谢谢。


参考答案:首先告诉你一些概念:
继承中的构造方法!!
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。

回复:super()和super(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; } 改成 public Chicken(String name,String crest) { super(name); this.crest=crest; }

回复:楼上正解,父类的private成员变量是不能被继承的,应该找不到这个this.name的
分享到:
评论

相关推荐

    Java中this与super的区别

    Java中this与super的区别 this&super; 什么是this,this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 Java关键字this只能用于方法的方法体内。当一个对象创建后, Java虚拟机(JVM)就...

    JAVA中的多层继承

    类的继承格式、继承的关系表示图、访问限制、子类对象的实例化过程、方法的覆写、属性的覆盖、Super关键字、this与super的区别

    java继承与多态教学及练习

    1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字

    《java面向对象程序设计-继承和多态》教案.doc

    继承 继承的特点 继承的优点 继承的JAVA实现 子类构造方法 2-1 子类构造方法 2-2 调用父类构造方法的语法为: super() 或 super(参数列表) ; super () 方法始终指向调用类的父类 调用父类构造方法 演示:示例 3 多态...

    AbstractTest.java帮助理解多重继承、抽象方法重写调用、super、this关键字、构造方法、重载知识点

    定义抽象类以及抽象方法,构造方法,将子类1定义为抽象类,子类2继承子类1,子类2重写抽象方法。用以帮助理解多重继承、抽象方法重写调用、super、this关键字使用、构造方法、重载这几个的知识点

    Java零基础-继承.md

    内容概要: 本文介绍了Java中的继承概念及其用法。读者将学习如何创建子类和父类,并了解继承的重要性和优势。通过一个图形类的示例,读者将了解如何使用关键字extends来实现类的继承,以及如何通过重写方法来实现...

    实验-继承&super.pdf

    java语言中的继承

    Java继承extends与super关键字详解

    本篇文章给大家详细讲述了Java继承extends与super关键字的相关知识点,需要的朋友们可以参考学习下。

    计算机后端-Java-Java核心基础-第13章 面向对象05 16. 继承和super课后练习.avi

    计算机后端-Java-Java核心基础-第13章 面向对象05 16. 继承和super课后练习.avi

    JAVA经典继承与父类调用 geter、seter访问器 构造器

    代码中设计了各个类的基类,设置私有成员变量,利用构造器对成员变量初始化,用geter、seter访问器设置、获取成员变量的值。继承基类并创建对象,在子类中调用父类方法。

    Java面向对象继承.pdf

    继承是面向对象编程中的一个概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。子类在继承父类的同时也可以添加自己的属性和方法,从而实现代码的复用和扩展。继承是面向对象编程...

    Java SE编程入门教程 java封装继承多态(共56页).pptx

    Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页)....

    Java中super关键字

    1.子类的构造函数如果要引用super的话,必须把super放在函数的首位,如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了...

    【继承、super、this、抽象类】.pdf

    学习Java的继承,构造方法的相关性值,体会super,this指针的魅力,结合我的博客Java提升学习(二),赶快学习起来吧。

    Java SE编程入门教程 java this和super(共10页).pptx

    Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页)....

    Java_this_super.zip_super

    Java_繼承_this與super的用法,多个类之间的继承与调用,this与super用法的实例

    09-JAVA-继承

    JAVA继承思维导图,便捷整理思路,继承的好处、编写继承代码、继承中的注意事项、this与super关键字访问实例变量区别

    09.【继承、super、this、抽象类】.zip

    java9.【继承、super、this、抽象类】.zip

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    Java 面向对象(继承、多态).ppt

    面向对象的概念 掌握类的继承、方法重写、super关键字的使用、final关键字 熟悉面向对象继承和多态的概念

Global site tag (gtag.js) - Google Analytics