举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java继承和构造函数区别 Java 继承和构造函数

java继承和构造函数区别 Java 继承和构造函数

2023-05-13 06:17 Java教程

java继承和构造函数区别 Java 继承和构造函数

java继承和构造函数区别

Java继承是指子类可以继承父类的属性和方法,它是一种代码复用的机制。通过使用Java的继承机制,可以减少重复代码,提高开发效率。

构造函数是一个特殊的方法,它在创建对象时被调用。它的作用是初始化对象,也就是为对象的属性赋予初始值。构造函数不能显式地返回一个值,它只能隐式地返回当前创建的对象。

public class Person {

    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    } 
} 

Java 继承和构造函数

Java面向对象设计 - Java继承和构造函数


构造函数不是类的成员,它们不是由子类继承的。

它们用于初始化实例变量。

class CSuper {
  public CSuper() {
    System.out.println("Inside CSuper() constructor.");
  }
}

class CSub extends CSuper {
  public CSub() {
    System.out.println("Inside CSub()  constructor.");
  }
}

public class Main {
  public static void main(String[] args) {
    CSub cs = new CSub();
  }
}

上面的代码生成以下结果。


例子

下面显示了如何编译器注入一个super()来立即调用父类的无参数构造函数。

class CSuper {
  public CSuper() {
    super(); // Injected by the compiler
    System.out.println("Inside CSuper() constructor.");
  }
}

class CSub extends CSuper {
  public CSub() {
    super(); // Injected by the compiler
    System.out.println("Inside CSub()  constructor.");
  }
}

public class Main {
  public static void main(String[] args) {
    CSub cs = new CSub();
  }
}

上面的代码生成以下结果。

关键字super指的是类的直接父类。

我们可以调用超类构造函数,只使用super关键字作为构造函数中的第一个语句。


无参数构造函数

我们可以将超类的no-args构造函数或任何其他构造函数显式地调用为类的构造函数中的第一个语句。

只有在没有明确添加的情况下,编译器才会注入no-args构造函数调用。

class Employee {
  private String name = "Unknown";

  public Employee(String name) {
    this.name = name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }
}

class Manager extends Employee {
  public Manager(String name) {
    super(name);
  }
}

public class Main {
  public static void main(String[] args) {
    Manager mgr = new Manager("Tom");
    String name = mgr.getName();
    System.out.println("Manager name:  " + name);
  }
}

上面的代码生成以下结果。


每个类都必须直接或间接地从其构造函数中调用其超类的构造函数。

如果超类没有no-args构造函数,我们必须显式地调用超类的任何其他构造函数。

阅读全文
以上是VUE中文网为你收集整理的java继承和构造函数区别 Java 继承和构造函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们