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修饰的类无法被继承、而抽象类必须要被继承、子类重构方法、所以排斥、无法通过编译。