Hôm trước mình đã giới thiệu đến các bạn từ khóa this rồi phải không nào ? Hôm nay chúng ta cùng tìm hiểu từ khóa super trong java nhé!
Từ khóa super trong java dùng để tham chiếu trực tiếp đến đối tượng của lớp cha gần nhất.
Tham chiếu trực tiếp đến biến instance của lớp cha
Từ khóa super có thể dùng để tham chiếu trực tiếp đến các thuộc tính instance của lớp cha. Chúng ta cùng xem ví dụ sau
class Car{ int speed = 100; } class Bike extends Car { int speed = 50; public void display(){ System.out.println("Speed: " + super.speed); } } public class TEST { public static void main(String[] args){ Bike bike = new Bike(); bike.display(); } }
Speed: 100
Nếu ta không thêm từ khóa super trước speed thì kết quả ở trên đã là Speed: 50
. Trong trường hợp thuộc tính của lớp cha và thuộc tính lớp con khác tên thì ta không cần phải dùng từ khóa super.
Sử dụng từ khóa super() để gọi constructor của lớp cha
Từ khóa super() có thể dùng để gọi constructor của lớp cha, trong trường hợp constructor của lớp con không gọi super() của lớp cha thì biên dịch cũng tự động thêm vào super().
class Car{ Car(){ System.out.println("Car is created"); } int speed = 100; } class Bike extends Car { Bike(){} int speed = 50; public void display(){ System.out.println("Speed: " + super.speed); } } public class TEST { public static void main(String[] args){ Bike bike = new Bike(); bike.display(); } }
Car is created Speed: 100
Nếu trong constructor bạn không có this() hoặc super() thì trong quá trình biên dịch chương trình cũng sẽ gọi super().
Lưu ý: trong dòng đầu tiên chỉ có thể gọi super() hoặc this() mà thôi.
Sử dụng từ khóa super để gọi phương thức của lớp cha
Tương tự như cách dùng để truy cập thuộc tính instance của lớp cha. Từ khóa super cũng có thể dùng để gọi phương thức của lớp cha.
class Car{ public void display(){ System.out.println("Car"); } } class Bike extends Car { public void display(){ System.out.println("Bike"); } public void print(){ super.display(); } } public class TEST { public static void main(String[] args){ Bike bike = new Bike(); bike.print(); } }
Car
Nếu như phương thức của lớp cha khác tên phương thức của lớp con thì chúng ta không cần phải dùng từ khóa super.
Bài viết của mình đến đây là kết thúc. Cám ơn các bạn đã theo dõi !
Để lại một bình luận