【Java练习题】Java 程序的输出 | 第二十套(继承)

简介: 【Java练习题】Java 程序的输出 | 第二十套(继承)

难度级别: 中等

程序

程序一


1) 以下程序的输出是什么?

class A
{
  public A(String s)
  {
    System.out.print("A");
  }
}
public class B extends A
{
  public B(String s)
  {
    System.out.print("B");
  }
  public static void main(String[] args)
  {
    new B("C");
    System.out.println(" ");
  }
}

点此跳转到答案


程序二


2) 以下程序的输出是什么?

class Clidder
{
  private final void flipper()
  {
    System.out.println("haiyong");
  }
}
public class Clidlet extends Clidder
{
  public final void flipper()
  {
    System.out.println("HAIYONG");
  }
  public static void main(String[] args)
  {
    new Clidlet().flipper();
  }
}

点此跳转到答案


程序三


3) 以下程序的输出是什么?

class Alpha
{
  static String s = " ";
  protected Alpha()
  {
    s += "alpha ";
  }
}
class SubAlpha extends Alpha
{
  private SubAlpha()
  {
    s += "sub ";
  }
}
public class SubSubAlpha extends Alpha
{
  private SubSubAlpha()
  {
    s += "subsub ";
  }
  public static void main(String[] args)
  {
    new SubSubAlpha();
    System.out.println(s);
  }
}
}

点此跳转到答案


程序四

4) 以下程序的输出是什么?

public class Juggler extends Thread
{
  public static void main(String[] args)
  {
    try
    {
      Thread t = new Thread(new Juggler());
      Thread t2 = new Thread(new Juggler());
    }
    catch (Exception e)
    {
      System.out.print("e ");
    }
  }
  public void run()
  {
    for (int i = 0; i < 2; i++)
    {
      try
      {
        Thread.sleep(500);
      }
      catch (Exception e)
      {
        System.out.print("e2 ");
      }
      System.out.print(Thread.currentThread().getName()+ " ");
    }
  }
}

点此跳转到答案


程序五


5) 以下程序的输出是什么?

class Grandparent
{
  public void Print()
  {
    System.out.println("Grandparent's Print()");
  }
}
class Parent extends Grandparent
{
  public void Print()
  {
    System.out.println("Parent's Print()");
  }
}
class Child extends Parent
{
  public void Print()
  {
    super.super.Print();
    System.out.println("Child's Print()");
  }
}
public class Main
{
  public static void main(String[] args)
  {
    Child c = new Child();
    c.Print();
  }
}

点此跳转到答案


文章后半部分是程序的输出及解析


image.png

输出及解析

程序一输出


输出: 编译失败

prog.java:12: error: constructor A in class A cannot be applied to given types;
    {
    ^
  required: String
  found: no arguments
  reason: actual and formal argument lists differ in length
1 error

说明

B 的构造函数中隐含的 super() 调用无法满足,因为 A 中没有无参数构造函数。仅当类没有显式定义的构造函数时,编译器才会生成默认的无参数构造函数。


程序二输出


输出

HAIYONG

说明

虽然不能覆盖 final 方法,但在这种情况下,该方法是私有的,因此是隐藏的。结果是创建了一个新的、可访问的方法翻转器。因此,在这个例子中没有发生多态,调用的方法只是子类的方法,不会发生错误。


程序三输出

输出

alpha subsub

说明

SubSubAlpha 扩展了 Alpha!由于代码不会尝试创建 SubAlpha,因此 SubAlpha 中的私有构造函数是可以的。


程序四答案

输出

无输出

说明

在 main() 中,start() 方法从未被调用来启动“t”和“t2”,因此 run() 从未运行过。


程序五答案

输出 :

编译器错误在 super.super.Print()

说明:

在 Java 中,不允许执行 super.super。我们只能使用 Parent 访问祖父母的成员。


以上就是本篇文章的所有内容了

目录
相关文章
|
22天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
64 1
|
27天前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
60 1
|
18天前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
32 0
|
2月前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
26 3
|
2月前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
42 2
|
2月前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
34 2
|
2月前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
41 1
|
2月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
103 2
|
2月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
141 1
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
61 1