第一题:

A 派生出子类 B , B 派生出子类 C ,并且在 java 源代码有如下声明:

  1. A a0=new A();
  2. A a1=new B();
  3. A a2=new C();

问以下哪个说法是正确的?()

我们来看题目中的三行代码:

A a0 = new A();

这行代码创建了一个A类的实例,并将其赋值给一个A类型的引用变量a0。这是完全合法的,因为a0是一个A类型的引用,可以指向A类的实例。

A a1 = new B();

这行代码创建了一个B类的实例,并将其赋值给一个A类型的引用变量a1。这也是合法的,因为B类是A类的子类,根据多态性,父类引用可以指向子类对象。

A a2 = new C();

这行代码创建了一个C类的实例,并将其赋值给一个A类型的引用变量a2。这同样是合法的,因为C类是B类的子类,而B类又是A类的子类。因此,A类型的引用可以指向C类的实例。

综合选D. 第1行,第2行和第3行的声明都是正确的。


第二题:

以下说法错误的是:

B:重写要求两个方法名字相同, 同时参数的类型和个数相同,并且返回值类型也必须相同(或者返回值类型是父类方法返回值类型的子类型,这称为协变返回类型)。

这里可以回顾一下重写和重载的对比:

第三题:

关于抽象类的说法以下正确的是:

A. 某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法

  • 这是错误的。如果子类也是抽象类,则不需要重载父类中的抽象方法。且非抽象类的子类只需要重载它直接继承的父类中的方法。

B. 接口和抽象类是同一回事

  • 这是错误的。接口和抽象类在Java中是不同的概念。接口只包含抽象方法和常量,而抽象类可以包含抽象方法和具体方法,还可以包含成员变量。

C. 可以用抽象类直接去实例化创建对象

  • 这是错误的。抽象类不能被实例化,只能被继承。

D. 一个类只能继承一个抽象类

  • 这是正确的。Java中的类是单继承的,即一个类只能继承一个父类,包括抽象类。

第四题:

public interface IService {String NAME=“default”;}

默认类型等价表示是哪一项:

接口当中的成员变量默认是:public static final

接口当中的成员方法默认是:public abstract

一般定义的时候不加,也是默认为以上的形式存在的,所以选 C

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部