温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

超类中的final方法能被继承吗

发布时间:2025-07-08 05:17:24 来源:亿速云 阅读:102 作者:小樊 栏目:编程语言

在Java中,final方法是不能被子类重写的。这意味着如果你有一个超类(父类)中的方法被声明为final,那么任何试图继承该超类的子类都不能覆盖(重写)这个final方法。

然而,这并不意味着final方法不能被子类继承。子类会自动继承父类中的所有非私有成员,包括final方法。子类可以调用这些final方法,但不能修改它们的实现。

下面是一个简单的例子来说明这一点:

class SuperClass {
    public final void finalMethod() {
        System.out.println("This is a final method in the superclass.");
    }
}

class SubClass extends SuperClass {
    // 尝试重写父类的final方法会导致编译错误
    // public void finalMethod() { // 编译错误:cannot override the final method from SuperClass
    //     System.out.println("Trying to override a final method.");
    // }
    
    public void callFinalMethod() {
        // 子类可以调用继承自父类的final方法
        super.finalMethod();
    }
}

public class Main {
    public static void main(String[] args) {
        SubClass sub = new SubClass();
        sub.callFinalMethod(); // 输出: This is a final method in the superclass.
    }
}

在上面的例子中,SubClass继承了SuperClass,并且可以调用finalMethod(),但不能重写它。如果你取消注释SubClass中的finalMethod()方法定义,编译器会报错,提示你不能覆盖父类的final方法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI