Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Khi ghi đè phương thức, lớp con có thể chọn không ném exception trong Java?

Nếu phương thức của lớp cha ném ra một exception nào đó, bạn hoàn toàn có thể ghi đè (override) phương thức đó mà không ném bất kỳ exception nào.

Ví dụ minh họa

Trong ví dụ sau, phương thức sampleMethod() của lớp cha ném FileNotFoundException, nhưng phương thức ghi đè ở lớp con không ném exception nào. Chương trình vẫn biên dịch và chạy bình thường.

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;

abstract class Super {
    public void sampleMethod() throws FileNotFoundException {
        System.out.println("Method of superclass");
    }
}

public class ExceptionsExample extends Super {
    public void sampleMethod() {
        System.out.println("Method of Subclass");
    }

    public static void main(String args[]) {
        ExceptionsExample obj = new ExceptionsExample();
        obj.sampleMethod();
    }
}

Kết quả

Method of Subclass

Lưu ý: Quy tắc này chỉ áp dụng cho checked exception. Với unchecked exception (RuntimeException), bạn có thể ném tự do mà không cần khai báo.