`
bingtears
  • 浏览: 187593 次
  • 性别: 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中super关键字的三种用法

    如果我们想在子类的构造函数中使用 super,但是没有放在第一行,那么在 super 之前的语句肯定是为了满足自己想要完成某些行为的语句,但是又用了 super 继承父类的构造方法。那么以前所做的修改就都回到以前了,就是...

    Java方法继承、方法重载、方法覆盖总结

    在Java编程语言中,方法继承、方法重载、方法覆盖是三个非常重要的概念。它们之间既有关联又有区别,掌握这些概念对于深入理解面向对象编程有着至关重要的作用。 #### 一、Java方法继承 **方法继承**是指在一个类...

    java关于继承的思维导图(Xmind)

    在这个"java关于继承的思维导图(Xmind)"中,我们可以看到作者对Java继承机制的详细梳理。 1. **类的层次结构** - 在Java中,类可以看作是对象的模板,通过继承,子类可以共享父类的特性。这构建了一个类的层次结构...

    Java中this与super的区别

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

    Java 继承和方法重写

    Java 继承是面向对象编程中的一个核心概念,它允许一个类(子类或派生类)从另一个类(父类或基类)继承特性,从而实现代码的复用和扩展。方法重写则是继承机制中一个关键的特性,允许子类对父类的方法进行定制化,...

    java_中关于_继承_的一个小例子.

    通过`java_中关于_继承_的一个小例子.docx`文档,可能包含了更详细的示例代码、解释或者练习题,旨在帮助学习者深入理解和掌握Java中的继承概念。在实际编程中,继承被广泛应用于构建层次化的类结构,如在游戏开发中...

    java中的继承(子类调用父类构造方法还不懂).doc

    Java 中的继承(子类调用父类构造方法还不懂) Java 中的继承是指一个类可以继承另一个类的属性和方法,这样可以实现代码的复用和提高开发效率。在 Java 中,继承使用关键字 `extends` 来实现。 Java 中继承的注意...

    java继承类实例

    在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...

    Java中extends类的继承

    在Java编程语言中,`extends`关键字用于实现类的继承机制。类的继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。下面将详细探讨`extends`...

    关于JAVA继承的讲解

    Java 继承是面向对象编程中的一个重要概念,它允许一个类(子类)从另一个类(父类)中继承属性和方法,从而实现代码的复用和类的层次结构。这种方式使得子类能够继承父类的特性,同时可以添加自己的特性和功能,而...

    java中带super关键字的程序内存分析

    综上所述,`super`关键字在Java中扮演着关键角色,它帮助我们理解和管理对象的继承关系,有效进行内存管理和方法调用。在编写复杂的继承结构时,正确使用`super`能够提高代码的可读性和维护性,同时充分利用Java的...

    经典java继承例子

    Java继承是面向对象编程的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的...

    Java super关键字使用

    在Java编程语言中,`...理解和恰当使用`super`是掌握Java继承机制的关键,也是编写高效、可扩展代码的基础。在实际编程中,根据需求选择合适的方式使用`super`,可以避免不必要的复杂性,提高代码的清晰度和可读性。

    Java父类继承代码示例

    在Java编程语言中,继承是面向对象编程的一个关键特性,它允许一个类(子类...在提供的压缩包文件中,你可以找到更多关于Java父类继承的具体代码实例,这些示例将帮助你深化对这一主题的理解,并将其应用到实际开发中。

    Java类继承初始化顺序

    当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、super关键字以及方法的覆盖。 首先,了解类初始化的顺序至关重要。当创建一个子类实例时,初始化过程遵循以下步骤: 1. ...

    Java方法继承、方法重载、方法覆盖小结.doc

    Java 编程语言中,方法继承、方法重载、方法覆盖是三个重要的概念,它们在软件开发中发挥着重要作用。 方法继承 方法继承是 Java 编程语言的一种机制,允许一个类继承另一个类的属性和方法。使用 `extends` 关键字...

    1.java中super关键字的应用

    总结起来,`super`关键字在Java中扮演着连接子类和父类的关键角色,它使得我们可以方便地调用父类的构造器、成员变量和方法。理解并合理使用`super`是学习Java多态和继承的重要部分。如果你在实际使用中遇到问题或对...

    Java 接口与继承

    继承是Java中创建新类的一种方式,它允许一个子类(SubClass)从一个已存在的父类(SuperClass)中获取属性和方法。这种机制使得子类可以扩展父类的功能,而无需重新编写父类的代码。在Java中,创建子类的语法如下:...

    java继承例题

    Java继承是面向对象编程(OOP)的一种机制,允许一个类继承另一个类的成员变量和成员方法。通过继承,可以实现代码的重用和扩展。 在Java中,继承是通过使用关键字`extends`来实现的。例如,`class B extends A`...

    java继承部分课件

    在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、应用场景以及最佳实践。 在Java中,继承是通过使用`extends`关键字来实现的。例如,如果我们有一个名为`Animal`的父类,我们...

Global site tag (gtag.js) - Google Analytics