Kế thừa phương thức khởi tạo của lớp cha

Một phần của tài liệu Bài giảng ngôn ngữ lập trình java (Trang 53 - 54)

Mỗi lớp (cho dù là lớp con hay lớp cha) đều có riêng một hàm khởi tạo để thiết lập các trạng thái ban đầu của đối tượng được tạo ra.

Hàm khởi tạo của lớp cha có trách nhiệm khởi tạo trạng thái chung. Mỗi lớp con có hàm khởi tạo riêng để tạo ra trạng thái cụ thể của đối tượng con. Thông thường, hàm khởi tạo lớp con sẽ gọi hàm khởi tạo lớp cha. Việc này thực hiện bằng cách sử dụng từ khóa super.

Nếu từ khóa super được gọi, nó phải đứng ở dòng đầu tiên trong hàm khởi tạo của lớp con.

Thông thường, một số biến của lớp con sẽ trùng với các biến của lớp cha. Do đó, các biến trùng này sẽ được truyền vào hàm super.

Ví dụ:

public class Publication {

String title;

double price;

int coppies;

Publication(String pTitle, double pPrice, int pCoppies){

title = pTitle;

price = pPrice;

coppies = pCoppies;

} }

public class Book extends Publication{

String author;

Book(String pTitle, String pAuthor, double pPrice, int

pCoppies){

super(pTitle,pPrice,pCoppies);

author = pAuthor;

} }

Nguyên tắc gọi hàm khởi tạo lớp cha:

- Nếu lớp cha có một hàm khởi tạo không có tham số thì hàm khởi tạo này của lớp cha sẽ mặc định được gọi trong hàm khởi tạo của lớp con.

- Nếu lớp cha có duy nhất một hàm khởi tạo có tham số thì hàm super bắt buộc

phải được gọi tại lớp con. Ví dụ:

54 Hình bên trái: Lớp con không có hàm khởi tạo nhưng thay vào đó hàm khởi tạo lớp cha sẽ mặc định được gọi tại lớp con. Tuy nhiên khuyến nghị là nên có hàm khởi tạo tại lớp con.

Hình giữa: Lớp cha có 2 hàm khởi tạo. Nếu hàm khởi tạo lớp con không có từ khóa super thì hàm khởi tạo không tham số của lớp cha sẽ mặc định được gọi tại lớp con.

Hình bên phải: Lớp cha có 1 hàm khởi tạo có tham số. Do đó từ khóa super bắt buộc phải được sử dụng trong hàm khởi tạo của lớp con. Từ khóa super được dùng trong một số tình huống sau :

- Dùng trong phương thức khởi tạo của lớp con trong trường hợp hàm khởi tạo lớp cha có tham số.

- Dùng để gọi biến của lớp cha. Ví dụ lớp cha và lớp con có biến count và cùng kiểu int. Trong lớp con nếu chúng ta muốn sử dụng biến của lớp cha thì ta dùng từ khóa super như sau : super.hunger.

Một phần của tài liệu Bài giảng ngôn ngữ lập trình java (Trang 53 - 54)

Tải bản đầy đủ (PDF)

(131 trang)