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

916 阅读4分钟

这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

难度级别: 中等

程序

程序一

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();
	}
}

点此跳转到答案


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

e5c6cea5b62c3294f17e2e9eaf8538c2.jpg


输出及解析

程序一输出

输出: 编译失败

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 访问祖父母的成员。


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

相关文章:

【Java练习题】Java 程序的输出 | 第一套(含解析)
【Java练习题】Java 程序的输出 | 第二套(含解析)
【Java练习题】Java 程序的输出 | 第三套(含解析)
【Java练习题】Java 程序的输出 | 第四套(含解析)
【Java练习题】Java 程序的输出 | 第五套(含解析)
【Java练习题】Java 程序的输出 | 第六套(含解析)
【Java练习题】Java 程序的输出 | 第七套(含解析)
【Java练习题】Java 程序的输出 | 第八套(含解析)
【Java练习题】Java 程序的输出 | 第九套(含解析)
【Java练习题】Java 程序的输出 | 第十套(垃圾回收)
【Java练习题】Java 程序的输出 | 第十一套(含解析)
【Java练习题】Java 程序的输出 | 第十二套(含解析)
【Java练习题】Java 程序的输出 | 第十三套(集合)
【Java练习题】Java 程序的输出 | 第十四套(构造函数)
【Java练习题】Java 程序的输出 | 第十五套(内部类)
【Java练习题】Java 程序的输出 | 第十六套(线程)
【Java练习题】Java 程序的输出 | 第十七套(含解析)
【Java练习题】Java 程序的输出 | 第十八套(重写)
【Java练习题】Java 程序的输出 | 第十九套(含解析)

我已经写了很长一段时间的技术博客,这是我的一篇技术文章/教程。希望你们会喜欢!这里汇总了我的全部原创及作品源码:GitHub,还有这是我最近刚搭建的博客:haiyong.site,里面还没啥内容,放了一些HTML小游戏,有兴趣的可以尝试一下,源码可以自己F12复制,或者直接找我要。

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。🤗最后,不要忘了❤或📑支持一下哦。