📌  相关文章
📜  教资会网络 | UGC NET CS 2018 年 12 月 – II |问题 78(1)

📅  最后修改于: 2023-12-03 15:10:15.977000             🧑  作者: Mango

UGC NET CS 2018 年 12 月 – II | 问题 78

UGC NET是印度大学委员会为招聘大学和大专学院讲师而设立的全国网络资格考试。问题 78 针对计算机科学专业的考生,下面是介绍:

介绍

问题 78 给了一个Java程序,要求找到运行后输出的结果。这道题目着重考察了程序员的Java语言基础和概念。

题目

问题 78 给定下面的Java程序:

class A {
    void display () {
        System.out.println ("Base class A");
    }
}

class B extends A {
    void display () {
        System.out.println ("Derived class B");
    }
}

class C extends B {
    void display () {
        System.out.println ("Derived class C");
    }
}

public class Example {
    public static void main(String[] args) {
        A a = new C();
        B b = (B) a;
        C c = (C) b;
        a.display();
        b.display();
        c.display();
    }
}
解析

这个程序定义了三个类: AB ,和 C 。类 B 继承了类 A ,类 C 继承了类 B

在主方法中,一个总的引用 a 声明为 new C() 创建新的对象。然后 a 强制转换为 B 类型并运行时引用 b 。紧接着 b 强制转换为 C 类型并运行时引用 c

每个对象调用 display() 方法,这个方法在每一个类中都被重写。由于Java的动态性,显然输出的是子类的方法,而不是父类的方法。

所以,答案是:

Derived class C
Derived class C
Derived class C
总结

除了这道题目,计算机科学专业的学生们应该掌握Java语言的基本概念和特性。掌握Java语言的概念非常重要,因为Java是一种广泛使用的高级编程语言,用于构建企业级应用程序。在去应聘Java程序员,或是应用Java于开发时,这个知识储备是非常基础的。