http://vietjack.com/java/index.jsp Copyright © vietjack.com Từ khóa super Java Từ khóa super Java biến tham chiếu mà sử dụng để tham chiếu đến đối tượng lớp cha gần Bất bạn tạo instance (sự thể hiện) lớp con, instance lớp cha tạo ngầm định, tham chiếu biến super Sự sử dụng từ khóa super Java super sử dụng để tham chiếu biến instance lớp cha gần super() sử dụng để triệu hồi Constructor lớp cha gần super sử dụng để triệu hồi phương thức lớp cha gần Phần tiếp theo, tìm hiểu chi tiết sử dụng từ khóa super Java super để tham chiếu biến instance lớp cha gần Vấn đề xảy khơng có từ khóa super: class Vehicle{ int speed=50; } class Bike3 extends Vehicle{ int speed=100; void display(){ System.out.println(speed); //se in speed cua Bike } public static void main(String args[]){ Bike3 b=new Bike3(); b.display(); } } Trong ví dụ trên, hai lớp Vehicle Bike có thuộc tính speed chung Biến instance lớp tham chiếu instance theo mặc định, phải tham chiếu tới biến instance lớp cha, sử dụng từ khóa super để phân biệt biến instance lớp cha biến instance lớp http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com Xử lý vấn đề với từ khóa super Java: //Chuong trinh vi du tu khoa super class Vehicle{ int speed=50; } class Bike4 extends Vehicle{ int speed=100; void display(){ System.out.println(super.speed); //bay gio se in speed cua Vehicle } public static void main(String args[]){ Bike4 b=new Bike4(); b.display(); } } super() sử dụng để triệu hồi Constructor lớp cha gần Bạn theo dõi ví dụ sau: class Vehicle{ Vehicle(){System.out.println("Vehicle duoc tao");} } class Bike5 extends Vehicle{ Bike5(){ super();//se trieu hoi constructor cua lop cha System.out.println("Bike duoc tao"); } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com public static void main(String args[]){ Bike5 b=new Bike5(); } } Ghi chú: super() tự động thêm vào Constructor lớp Compiler Qua chương trước, biết constructor mặc định cung cấp Compiler thêm super() cho lệnh Nếu bạn tạo constructor cho riêng bạn khơng có this() super() lệnh đầu tiên, Compiler cung cấp super() lệnh Constructor Một ví dụ khác từ khóa super, ví dụ super() cung cấp ngầm định Compiler class Vehicle{ Vehicle(){System.out.println("Vehicle duoc tao");} } class Bike6 extends Vehicle{ int speed; Bike6(int speed){ this.speed=speed; System.out.println(speed); } public static void main(String args[]){ Bike6 b=new Bike6(10); } } super sử dụng để triệu hồi phương thức lớp cha gần Từ khóa super sử dụng để triệu hồi phương thức lớp cha gần Nó nên sử dụng lớp mà có chứa phương thức lớp cha, ví dụ sau: class Person{ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com void message(){System.out.println("Chao mung");} } class Student16 extends Person{ void message(){System.out.println("Chao mung ban den voi java");} void display(){ message();//se trieu hoi phuong thuc message() cua lop hien tai super.message();//se trieu hoi phuong thuc message() cua lop cha } public static void main(String args[]){ Student16 s=new Student16(); s.display(); } } Trong ví dụ trên, hai lớp Student Person có phương thức message(), gọi phương thức message() từ lớp Student, gọi phương thức message() lớp Student lớp Person quyền ưu tiên cục Trong tình mà khơng có phương thức lớp giống lớp cha, khơng cần sử dụng từ khóa super Trong ví dụ đây, phương thức message() triệu hồi từ lớp Student, lớp Student khơng có phương thức message() này, bạn trực tiếp gọi phương thức message() Ví dụ chương trình khơng cần từ khóa super: class Person{ void message(){System.out.println("Chao mung");} } class Student17 extends Person{ void display(){ http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java/index.jsp Copyright © vietjack.com message();//se trieu hoi phuong thuc message() cua lop cha } public static void main(String args[]){ Student17 s=new Student17(); s.display(); } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page ...http://vietjack.com /java/ index.jsp Copyright © vietjack.com Xử lý vấn đề với từ khóa super Java: //Chuong trinh vi du tu khoa super class Vehicle{ int speed=50; } class... hien tai super. message();//se trieu hoi phuong thuc message() cua lop cha } public static void main(String args[]){ Student16 s=new Student16(); s.display(); } } Trong ví dụ trên, hai lớp Student... message() từ lớp Student, gọi phương thức message() lớp Student lớp Person quyền ưu tiên cục Trong tình mà khơng có phương thức lớp giống lớp cha, khơng cần sử dụng từ khóa super Trong ví dụ đây,