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

本文实例讲述了Java super关键字用法。分享给大家供大家参考,具体如下:

一 点睛

如果子类继承了父类的数据成员,这时就需要调用父类的有参构造方法,来初始化来自父类的数据成员,这时就需要显示的调用父类中的有参构造方法super(参数1,参数2)。

二 实战——super调用父类中的构造方法

1 代码

class Person
{
  String name;
  int age;

  public Person( String name, int age )  // 父类的构造方法
  {
    this.name = name;
    this.age = age;
  }
}
class Student extends Person
{
  String school;
  // 子类的构造方法
  public Student(String name, int age, String school)
  {
    super( name, age );      // 用super调用父类中的构造方法
    this.school = school;
  }
}
public class SuperDemo
{
  public static void main( String[] args )
  {
    Student s = new Student("Jack", 30, "HAUT");
    System.out.println( "Name:" + s.name + ", Age:" + s.age + ", School:" + s.school );
  }
}

2 运行

Name:Jack, Age:30, School:HAUT

3 说明

在子类的构造方法中明确地使用super(name,age),指明调用的是父类的有两个参数的构造方法。

调用super()必须写在构造方法的第1行,否则编译不过。

每个子类构造方法的第一句话,都隐含地调用了super(),如果父类中没有提供这种形式的构造方法,那么在编译的时候就会报错。

三 实战——通过super调用父类的属性和方法

1 代码

class Person
{
  String name;
  int age;
  // 父类的构造方法
  public Person()
  {
  }
  public String talk()
  {
    return "I am :" + this.name + ", I am: " + this.age + " years old";
  }
}
class Student extends Person
{
  String school;
  // 子类的构造方法
  public Student( String name, int age, String school )
  {
    // 在这里用super调用父类中的属性,其实换成this也是可以的
    super.name = name;
    super.age = age;
    // 调用父类中的talk()方法
    System.out.print( super.talk() );
    // 调用本类中的school属性
    this.school = school;
  }
}
public class SuperDemo2
{
  public static void main( String[] args )
  {
    Student s = new Student( "Jack", 30, "HUAT" );
    System.out.println( ", I am from:" + s.school );
  }
}

2 运行

I am :Jack, I am: 30 years old, I am from:HUAT

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java方法重写和super关键字实例详解

     java方法重写和super关键字  在继承中,其实就是子类定义了和父类同名的方法 就是方法,属性都是相通的 重写限制:  被子类重写的方法不能拥有比父类方法更加严格的权限 super:强行调用父类方法的执行 重载和重写的区别?  重 载是发生在一个类中   对权限没有要求   而且重载的方法参数可以不同 重写发生在继承汇总      被子类重写的方法不能拥有比父类方法更加严格的权限,重写的方法中参数名字完全相同  实例代码: class A{ public void tell(){ Syst

  • 详解Java编程中super关键字的用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自己是否在用面向对象的思想编程,自己的程序是否是面向对象的. 好了,现在开始讨论this&super这两个关键字的意义和用法.在Java中,this通常指当前对象,super则指父类的.当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当

  • java之super关键字用法实例解析

    本文实例讲述了java中super关键字的用法.分享给大家供大家参考.具体方法分析如下: super关键字:在java中使用super来引用基类的成分. 程序代码如下: class FatherClass{ public int value; public void f(){ value = 100; System.out.println("FatherClass.value:"+value); } } class ChildClass extends FatherClass{ pri

  • Java的super关键字与instanceof运算符使用方法

    Java super关键字 super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类中,Java 能自动向上层类追溯. 父类行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自动向上层类追溯. super 关键字的功能: 调用父类中声明为 private 的变量. 点取已经覆盖了的方法. 作为方法名表示父类构造方法. 调用隐藏变

  • Java中的super关键字_动力节点Java学院整理

    一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引用里面的父类对象呢?使用super来引用,this指的是当前对象的引用,super是当前对象里面的父对象的引用. super关键字测试 package com.bjpowernode.test; /** * 父类 * * */ class FatherClass { public int value

  • java中this与super关键字的使用方法

    java中this与super关键字的使用方法 这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身. 2.形参与成员名字重名,用this来区分: class Person { private int age = 10; public Perso

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

    构造方法中的super关键字 在Java子类的构造方法中可以通过super关键字来调用父类的构造方法.其用法为: 1) super(); 访问父类中的无参构造函数 2) super (paras-); 访问父类中的成员函数yyy super()来调用父类无参的构造方法,但即使不使用super(),默认也会调用父类无参的构造方法.父类无参的构造方法可以是自定义的无参构造方法,也可以是编译器自动生成的默认构造方法.但如果父类中定义了有参的构造方法,但没有定义无参的构造方法,这时编译器不会生成默认构造

  • 举例讲解Java编程中this关键字与super关键字的用法

    this 总要有个事物来代表类的当前对象,就像C++中的this指针一样,Java中的this关键字就是代表当前对象的引用. 它有三个主要的作用: 1.在构造方法中调用其他构造方法.       比如有一个Student类,有三个构造函数,某一个构造函数中调用另外构造函数,就要用到this(),而直接使用Student()是不可以的. 2.返回当前对象的引用. 3.区分成员变量名和参数名. 看下面的例子: public class Student { private String name; p

  • Android中比较常见的Java super关键字

    super在android中比较常见,没有java基础也并不理解,所以空出时间学习了一下. 在Java类中使用super来引用基类的成分,比较简单,示例如下: class FatherClass{ public int value; public void f(){ value=100; System.out.println ("FatherClass.value:"+value); } } class ChildClass extends FatherClass{ public in

  • Java继承extends与super关键字详解

    函数也称为方法! 继承:在java中使用extends关键字来表示继承关系.super用来继承父类方法和参数. 继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为. 注意事项: 1.当一个类没有继承任何一个类时,系统默认继承Object. 2.父类又被称为基类.超类.super类,子类又被称为派生类,这是由于翻译问题而导致的. 3.Java的继承是单一性的. 4.子类不能继承父类的构造方法,但是可以继承构造方法类的参数. 5.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展.但子

随机推荐