Java程式使用建構函式分配和初始化超類成員
在Java中,super指的是父類,為了將一個類繼承到另一個類,我們使用extends關鍵字。在建立Java程式使用建構函式分配和初始化超類成員之前,讓我們先了解一下本文中將使用的一些概念。
什麼是建構函式?
建構函式與方法非常相似,但區別在於方法定義了物件的行為,而建構函式用於初始化這些物件。
我們可以為方法提供任何我們選擇的名稱,但建構函式必須與類名相同。
此外,方法可以返回值,但建構函式不返回值,因為它們不能有任何返回型別。
當用戶不建立任何建構函式時,Java編譯器會自動建立一個(我們稱之為預設建構函式)。
語法
public class Constructor_example {
Constructor_example() {
// constructor
// code to be executed
}
}
示例
public class Cnst {
Cnst(){
// constructor
System.out.println("I am constructor");
}
public static void main(String[] args) {
Cnst obj = new Cnst();
// calling the Constructor
}
}
輸出
I am constructor
this和super關鍵字
this關鍵字用於區分同一類方法的區域性變數和例項變數,但super關鍵字用於區分超類成員和子類成員。
this關鍵字用於呼叫當前類的方法、建構函式和變數,但super關鍵字用於呼叫基類的方法和建構函式。
示例1
以下示例說明了this關鍵字的使用。
public class Main {
String name = "Your name";
Main(String name) {
// Constructor
this.name = name;
// Represents the variable of constructor Main
System.out.println(name);
}
public static void main(String[] args) {
Main obj = new Main("Tutorialspoint");
}
}
輸出
Tutorialspoint
在上面的程式碼中,我們建立了一個引數化建構函式“Main”,以及一個字串型別的引數“name”。因此,在呼叫建構函式時,我們使用了引數“Tutorialspoint”。
示例2
以下示例說明了super關鍵字的使用。
class Tutorialspoint {
String name="Your name";
}
public class Tutorix extends Tutorialspoint {
String name = "My name";
public void show() {
// To access name variable of class Tutorialspoint
System.out.println("Accessing base class name: " + super.name);
// To access local variable of class Tutorix
System.out.println("Accessing child class name: " + name);
}
public static void main(String[] args) {
Tutorix obj = new Tutorix();
obj.show();
}
}
輸出
Accessing base class name: Your name Accessing child class name: My name
在上面的程式碼中,類“Tutorix”繼承了“Tutorialspoint”類。“Tutorix”子類的“show()”方法嘗試使用super關鍵字訪問其父類“Tutorialspoint”的“name”變數。在主方法中,我們使用new關鍵字建立了“Tutorix”類的物件。我們使用該物件呼叫了show()方法。
使用建構函式分配和初始化超類成員
示例
class P {
String item_name;
int rate;
int quantity;
P(String item_name, int rate, int quantity) { // Constructor of parent class
this.item_name = item_name;
this.rate = rate;
this.quantity = quantity;
System.out.println("I am super class constructor");
System.out.println("I contain " + item_name + " " + rate + " " + quantity);
}
}
public class C extends P {
// Inheriting the parent class using extends keyword
C(String status) {
// Constructor of child class
super("Milk", 60, 2);
// allocating values to parent class members
System.out.println("I am sub class constructor ");
System.out.println(status);
}
public static void main(String[] args) {
C obj = new C("paid"); // calling the Child class constructor
}
}
輸出
I am super class constructor I contain Milk 60 2 I am sub class constructor paid
在上面的程式碼中,我們建立了一個父類“P”,它包含三個變數和一個包含三個引數的建構函式。“C”是“P”的子類。在“C”中,我們使用了super關鍵字為父類“P”分配值。
結論
在本文中,我們瞭解了建構函式與普通方法的不同之處,以及this和super關鍵字的使用。最後,我們建立了一個Java程式,該程式使用建構函式分配和初始化超類成員。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP