`
songjindian
  • 浏览: 75611 次
  • 性别: Icon_minigender_1
  • 来自: 河南
文章分类
社区版块
存档分类
最新评论

super关键字

阅读更多
继承在面向对象的过程中可以说是司空见惯,在实例化子类的时候默认的是先调用父类的无参的构造函数,但在特定的时候这样子是会出错的:
父类:class Person
{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
public Person( String name,int age){//有两个参数的构造函数
this.name = name;
this.age = age;
}
}

子类:class Student extends Person
{
private String school;
public Student (String name,int age,String school){//有三个参数的构造函数
this.school = school;
}
public String getSchool(){
return school;
}
}

主类:public class Demo1
{
public static void main(String args[]){
Student stu = new Student("songjindian",24,"nyist");
System.out.println("姓名:"+stu.getName()+";年龄:"+stu.getAge()+";学校:"+stu.getSchool());
}

}

在class Demo中实例化Student时,要调用父类的无参的构造函数,编译出错如下:
Demo1.java:25: 找不到符号
符号: 构造函数 Person()
位置: 类 Person
        public Student (String name,int age,String school){
                                                          ^
1 错误

此时该怎么办呢?好嘚关键字super的出现先,先将Student类的代码改变如下:
class Student extends Person
{
private String school;
public Student (String name,int age,String school){
super(name,age);//在实例化子类是默认是要调用子类的构造方法,但此时没有,必须用super关键字在子类的构造函数中调用
//父类已存在的构造函数
this.school = school;
}
public String getSchool(){
return school;
}
}

再次编译成功,运行:
E:\java\java SE\4-11>javac Demo1.java

E:\java\java SE\4-11>java Demo1
姓名:songjindian;年龄:24;学校:nyist

将自己的学习心得记下!
0
1
分享到:
评论

相关推荐

    java中super关键字的三种用法

    Java 中 super 关键字的三种用法 Java 中的 super 关键字有三种用法:在子类的构造函数中调用父类的构造方法、在子类中访问父类的成员变量或方法、在子类的构造函数中直接传递参数给父类的构造方法。 首先,在子类...

    24.super关键字.zip

    24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24.super关键字.zip24...

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

    1. **构造器与super关键字**:在子类的构造器中,可以通过`super()`语句来调用父类的构造器,确保父类的状态在子类对象创建时得到初始化。这是Java强制子类构造器必须首先调用父类构造器的原因,除非父类有默认无参...

    Java super关键字使用

    在Java编程语言中,`super`关键字是一个非常重要的概念,它允许我们引用当前对象的父类中的成员。这个关键字在处理继承关系时尤其有用,帮助我们实现多态性并访问被隐藏或重写的成员。本篇文章将深入探讨`super`...

    java中super关键字的三种用法.pdf

    Java 中的 super 关键字的三种用法 Java 中的 super 关键字是非常重要的,它可以用于访问父类的成员变量和方法。下面我们将讨论 super 关键字的三种用法。 第一种用法:在子类的构造函数中调用父类的构造方法 在...

    javathis和super用法 this和 super 关键字的区别

    ### Java中的this与super关键字详解 #### 一、引言 在Java编程语言中,`this`和`super`是两个非常重要的关键字,它们在面向对象编程中扮演着不可或缺的角色。正确理解和使用这两个关键字对于编写高质量、易于维护...

    详解Java super 关键字.pdf

    在Java编程中,`super`关键字是一个非常重要的概念,它允许子类引用其直接父类的实例变量、方法,甚至调用父类的构造函数。理解并熟练运用`super`关键字是成为一名合格的Java开发者的关键技能之一。 首先,`super`...

    Java中this与super关键字的对比使用.pdf

    理解this与super关键字的用法有助于程序员编写出更加规范、严谨的代码,并能够有效管理继承体系中类的属性和方法,避免歧义和错误。 在Java编程实践中,正确运用this与super关键字,可以提高代码的可读性和可维护性...

    Java super关键字用法实战案例分析

    Java super关键字用法实战案例分析 Java super关键字是Java编程语言中的一种特殊关键字,用于访问父类的成员变量和方法。在Java中,子类继承父类时,需要使用super关键字来调用父类的构造方法、属性和方法。本文将...

    Java面向对象(进阶)- super关键字的使用与子类对象实例化全过程

    一、super关键字的使用 1. **为什么需要super?** 当子类继承父类后,可能出现以下情况: - 子类重写了父类的方法,但仍需在子类中调用父类的原始实现。 - 子类和父类中有同名的属性,需要在子类中明确区分这...

    Super关键字的几点应用

    博文链接:https://gml520.iteye.com/blog/129124

    day09 10 super关键字的三种用法

    day09_10_super关键字的三种用法

    深入浅析ES6 Class 中的 super 关键字

    深入浅析ES6 Class 中的 super 关键字 ES6 中的 Class 引入了一个新的关键字 super,这个关键字可以作为函数使用,也可以作为对象使用。在本文中,我们将深入浅析 ES6 Class 中的 super 关键字,了解其用法和特点。...

    1.java中super关键字的应用

    在Java编程语言中,`super`关键字是一个非常重要的概念,它用于引用当前对象的父类。`super`关键字主要用于以下几种情况:调用父类的构造器、访问父类的成员变量以及调用父类的非私有方法。下面我们将详细探讨`super...

    Java super关键字的使用方法详解

    Java super关键字的使用方法详解 Java super关键字是Java语言中的一种关键字,用于访问父类的成员变量和方法。在Java子类中,super关键字可以用来调用父类的构造方法、成员变量和方法,或者访问父类中的成员变量和...

    9.15 子类方法调用父类方法super关键字|高级部分:面向对象|Python3.8入门 & 进阶 & 原生爬虫实战完全解读

    9.15_子类方法调用父类方法super关键字|高级部分_面向对象|Python3.8入门_&_进阶_&_原生爬虫实战完全解读

    Java 程序显示 Super 关键字在类中的使用.docx

    在 Java 编程语言中,`super` 关键字是一个非常重要的概念,它主要用于处理类之间的继承关系。Java 是一种面向对象的编程语言,支持类的继承,这意味着一个类(子类)可以继承另一个类(父类)的属性和方法。`super`...

    第05章 面向对象(下) 03 方法重写与super关键字

    面向对象编程是Java语言的核心特性,本章将深入探讨面向对象设计中的一个重要概念——方法重写与`super`关键字的使用。在Java中,方法重写(Method Overriding)是子类对父类中已有方法的一种扩展或定制,它允许子类...

Global site tag (gtag.js) - Google Analytics