Các loại ngoại lệ (exceptions) trong Java
1. Ngoại lệ (exceptions) trong Java là gì? Một ngoại lệ (exception) là một sự kiện...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
1. Từ khóa super trong Java dùng để làm gì? Từ khóa super trong Java được sử dụng trong lớp con (subclass) để truy cập các thành phần trong lớp cha (superclass): Giúp gọi phương thức của lớp cha được ghi đè (overriding) trong lớp con Giúp truy cập các thuộc tính của lớp cha […]
Từ khóa super trong Java được sử dụng trong lớp con (subclass) để truy cập các thành phần trong lớp cha (superclass):
Khi lớp con gọi phương thức được ghi đè (overriding) có cùng tên với phương thức của lớp cha thì phương thức được gọi đó là của lớp con.
class LopCha{
protected void xuat(){
System.out.println("Lop cha.");
}
}
class LopCon extends LopCha{
@Override
public void xuat(){
System.out.println("Lop con.");
}
}
public class Test{
public static void main(String[] args) {
LopCon aaa = new LopCon();
aaa.xuat();
}
}
Lop con.Chúng ta có thể gọi phương thức của lớp cha trong lớp con sau khi đã ghi đè (overriding) phương thức đó bằng cách sử dụng từ khóa super.
class LopCha{
public void xuat(){
System.out.println("Lop cha.");
}
}
class LopCon extends LopCha{
@Override
public void xuat(){
super.xuat();//gọi hàm xuat() của lớp cha
System.out.println("Lop con.");
}
}
public class Test{
public static void main(String[] args) {
LopCon aaa = new LopCon();
aaa.xuat();
}
}
Lop cha.
Lop con.
Lớp cha và lớp con có thể có các thuộc tính có tên giống nhau. Chúng ta có thể sử dụng từ khóa super để gọi thuộc tính của lớp cha.
class LopCha{
protected String type="LopCha.";
}
class LopCon extends LopCha{
public String type="LopCon.";
public void xuat(){
System.out.println(type);
//gọi thuộc tính lớp cha
System.out.println(super.type);
}
}
public class Test{
public static void main(String[] args) {
LopCon aaa = new LopCon();
aaa.xuat();
}
}
LopCon.
LopCha.
Khi một đối tượng của lớp con được tạo ra, hàm khởi tạo mặc định (default constructor) của lớp cha cũng sẽ tự động được gọi. Trong một số trường hợp, chúng ta muốn chọn hàm khởi tạo nào trong lớp cha được gọi thì có thể sử dụng super().
Trong hàm khởi tạo của lớp con, chúng ta có thể gọi hàm khởi tạo của lớp cha bằng super(). super() chỉ có thể được gọi trong hàm khởi tạo của lớp con và phải được đặt ở dòng lệnh đầu tiên trong hàm khởi tạo của lớp con.
class LopCha{
LopCha(){
System.out.println("LopCha.");
}
}
class LopCon extends LopCha{
LopCon(){
super();
System.out.println("LopCon.");
}
}
public class Test{
public static void main(String[] args) {
LopCon aaa = new LopCon();
}
}
LopCha.
LopCon.
Chúng ta cũng có thể gọi hàm khởi tạo có tham số của lớp cha ở dòng lệnh đầu tiên trong hàm khởi tạo của lớp con sử dụng super().
class LopCha{
LopCha(){
System.out.println("LopCha.");
}
LopCha(String type){
System.out.println(type + " ke thua tu LopCha.");
}
}
class LopCon extends LopCha{
LopCon(){
super("LopCon");
System.out.println("LopCon.");
}
}
public class Test{
public static void main(String[] args) {
LopCon aaa = new LopCon();
}
}
LopCon ke thua tu LopCha.
LopCon.
Lưu ý: Nếu đã gọi hàm khởi tạo có tham số của lớp cha trong lớp con thì hàm khởi tạo mặc định của lớp cha sẽ không được trình biên dịch tự gọi nữa.