Java-继承

时间:2020-02-23 14:36:39  来源:igfitidea点击:

在本教程中,我们将学习Java编程语言中的继承。

继承是面向对象编程(OOP)的核心概念之一。
它允许我们创建层次结构。

Java继承就像现实世界的继承一样,子代继承了父代的属性,然后子代在继承的东西之上添加了一些额外的项。

Super类(超类)和Sub类(子类)

在使用继承的Java中,我们创建具有共同特征的父类或者超类,然后创建继承父类特征的子类或者子类。

例如,我们可以有一个Person类,该类具有成员变量和方法,这些变量和方法对于任何人来说都是非常通用的,例如名,姓等。

然后我们可以拥有另一个类Employee,它可以具有更具体的成员变量和方法,例如employeeid,payscale,joiningDate等。

因此," Employee"类可以继承" Person"类的常规变量和方法,然后添加自己的变量和方法以具有更具体的类。

用编程术语来说," Person"类将被称为超类或者父类。
继承了" Person"类的" Employee"类将称为子类或者子类。

extends关键字

为了在Java中创建继承,我们使用extends关键字。

语法:

class Parent {
  //some code...
}

class Child extends Parent {
  //some code...
}

其中,"父"是超类或者父类的名称,而"子"是子类或者子类的名称。

并使用extends关键字,Child类继承了Parent类的属性。

继承了什么?

子或者子类从父类或者超类继承以下内容。

  • 父类的" public"成员变量。

  • 父类的"protected"成员变量。

  • 父类的" public"方法。

  • 父类的"protected"方法。

子类不继承父类的"私有"成员变量和方法。

如何访问继承的变量和方法?

我们使用.运算符来访问继承的变量和方法。

在下面的示例中,我们有父类或者父类" Person",而子类或者子类" Employee"继承了父类。

//the parent class
class Person {
  //general member variables
  String firstname;
  String lastname;
}

//the child class inheriting the parent class
class Employee extends Person {
  //specific member variables
  String employeeid;
  int payscale;
  String joiningDate;

  //constructor
  Employee(String firstname, String lastname, String employeeid, int payscale, String joiningDate) {
    this.firstname = firstname;
    this.lastname = lastname;
    this.employeeid = employeeid;
    this.payscale = payscale;
    this.joiningDate = joiningDate;
  }

  //show employee details
  public void showDetail() {
    System.out.println("Employee details:");
    System.out.println("EmployeeID: " + this.employeeid);
    System.out.println("First name: " + this.firstname);
    System.out.println("Last name: " + this.lastname);
    System.out.println("Pay scale: " + this.payscale);
    System.out.println("Joining Date: " + this.joiningDate);
  }
}

//the main class
public class Example {
  
  //the main method
  public static void main(String[] args) {

    //employee data
    String firstname = "";
    String lastname = "";
    String employeeid = "E01";
    int payscale = 3;
    String joiningDate = "2010-01-01";

    //creating an object of the Employee class
    Employee empObj = new Employee(firstname, lastname, employeeid, payscale, joiningDate);

    //show detail
    empObj.showDetail();

  }
}
$javac Example.java 
$java Example
Employee details:
EmployeeID: E01
First name: 
Last name: 
Pay scale: 3
Joining Date: 2010-01-01

因此,当" Employee"类继承" Person"类时,它将转换为以下内容。

class Employee {
  //inherited variables from parent class
  String firstname;
  String lastname;

  //variables of the Employee class
  String employeeid;
  int payscale;
  String joiningDate;

  //constructor
  Employee(params_list) {
    //some code...
  }

  //method of the Employee class
  public void showDetail() {
    //some code...
  }
}