我的理解是:答案A的描述虽然没错,但这种提法没有意义。解释里说子类是不能覆盖父类中的不可被继承的方法,如果父类是虚类,其定义的方法一定没有方法体,若虚类中定义的方法不可被继承,而子类又不能通过覆盖来实现该方法,那么虚类中的这个方法是没有意义的,所以实际中不可能在虚类中定义不可继承的方法,因此对出题者来说专门用A中的描述来说明问题没有实际意义,对他来说“An abstract class may not have any final methods”是很自然的事,不必用语言描述。不知道老兄同意否?
而如果同时它又声明为final类的话,不能被继承,所以B是正确的!
A是不对的,抽象类里面可以包含抽象方法,也可以没有,抽象方法
在抽象类被继承后必须被实现,而其他抽象类里面的方法可以被重写
也可以不被重写,声明为fianl很正常!
But an class contains one or more final methods,the class may not be declared final.只要这个抽象类中的final方法不在它的子类中被Overriding.So,A is wrong!
因为抽象类中可以含有Final方法,他们并不矛盾。
到底是
不可以有
还是
可以没有从英语的角度说好像是 可以没有,
但是这里显然是 不可以有。answer is b
absolutely.
因为抽象类中有不能重载的方法是完全可能的。
而final类中如果有抽象方法,那么它毫无意义。因为既不能
实例化,也不能被继承。实际上编译都通不过。
a:抽象类中不可以含有final方法(错)
b:final类中不可以含有abstract方法(对)
抽象类中可以含有final方法,这个抽象类的子类不override这个final方法就是了,所以a错;
含有抽象方法的类一定是抽象类,它一定要被子类继承以override自身的抽象方法,而final类是不能被继承的,即final和abstract不能共同作为类的修饰符。所以b对。