一道java选择题
发布网友
发布时间:2022-05-13 15:36
我来回答
共4个回答
热心网友
时间:2023-10-14 16:20
类B继承类A,类B对类A的getNumber() 方法进行了重写,但返回值类型不同(byte与short)。关于重写,遵循以下的规则:
(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。
(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。
(3)只有实例方法才能被重写,超类中的final方法不能被重写。
(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。
(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。
(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。
热心网友
时间:2023-10-14 16:21
嗯,你好,原因是这样的,B从A中继承了A的getNumber()方法,而在B中又声明了同样的一个方法,那么就属于方法的重写,而重写是不能以方法的返回值做区别的,如byte和short,在编译时,编译器就分别不出这两个方法到底是谁的,就报错了。希望对你有所帮助。
热心网友
时间:2023-10-14 16:21
B
public class很常见吧!一个.java文件只能有一个public类
abstract class 也很常见,抽象类,它不能实例化对象(即不能用new 类名()创建对象)
final 看String类的定义:
public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequence
它是无法被继承的,跟abstract差不多相反
所以只有B
内部类就是在一个类的内部写的类
多用于事件监听那里。。
比如:
public class A{
class B{
}
}
B就是内部类了。A就是B的外部类、顶层类,内部类可以用private修饰,但顶层类不行
修饰符包括访问控制符如public、private等
热心网友
时间:2023-10-14 16:22
父类里面已经有了这个方法的定义,如果你重写。不能改变他的返回值类型,好吧