Java的抽象类中可以定义final方法吗?

Java的抽象类中可以定义final方法吗?不太清楚,请指教谢谢

可以。
注意两点:
1) final方法必须在抽象父类中定义
2) 抽象父类的子类不能override这个final方法

写了一个验证程序 child.java,代码如下:

abstract class father 
{
    public final void show() // final方法,定义在父类
    {
        System.out.println("成功调用父类final方法");
    }
    public abstract void success();
}

class child extends father 
{
    public void success() // override父类中抽象方法
    {
        System.out.println("成功override父类抽象方法");
    }

    public static void main(String[] args) throws java.lang.Exception {
        child id = new child(); 
        id.show(); 
        id.success();
    }
}

可以结合代码体会。
测试结果如下图:
图片说明

用心回答每个问题,如果对您有帮助,请采纳答案好吗,谢谢!

楼上的楼主说的好像都有道理,最简单的你可以尝试着运行下。

final修饰方法指子类不能修改父类的该方法,定义肯定是可以的

Java的抽象类中可以定义final方法,只不过,这个方法子类不能继承

抽象类中是可以定义final方法的,但是定义抽象类的目的是为了在子类当中重写这些方法的,一旦被声明为final方法就意味着子类不能重写。个人感觉一般情况下抽象类不定义final方法

抽象类中是可以定义final方法的,但是定义抽象类的目的是为了在子类当中重写这些方法的,一旦被声明为final方法就意味着子类不能重写。个人感觉一般情况下抽象类不定义final方法

没意义,继承了不能被重写

抽象类中定义了final方法,子类继承抽象类时会继承该方法,该方法不能被重写,子类也必须定义为抽象类,没有意义。。。。

不能

用final修饰的类无法被继承、而抽象类必须要被继承、子类重构方法、所以排斥、无法通过编译。