面向对象-请问这段程序的输出是什么 为什么

问题描述

请问这段程序的输出是什么 为什么
public class Test {

public static void main(String[] args) {

Animal a = new Dog();

a.syaHi();

Animal b = new Bulldog();

b.syaHi();

Dog dog = (Dog)b;

dog.syaHi();

check(dog);

Bulldog bulldog = (Bulldog)b;

check(bulldog);

}

public static void check(Dog dog)

{

System.out.println(""check dog""+dog.getName()+""."");

}

public static void check(Bulldog bulldog)

{

System.out.println(""check bulldog""+bulldog.getName()+""."");

}

}

interface Animal

{

void syaHi();

String getName();

}

class Dog implements Animal

{

public String getName()

{

return ""Bob"";

}

private String bark()

{

return ""wang-wang"";

}

public void syaHi()

{

System.out.println(""I am ""+getName()+"".""+bark());

}

}

class Bulldog extends Dog

{

@Override

public String getName(){return ""Mike"";}

private String bark(){return ""WOO-WOO"";}

}

解决方案

你就不能自己运行一下嘛?运行了,什么顺序都出来,且不会有错。

解决方案二:
I am Bob.wang-wang
I am Mike.wang-wang
I am Mike.wang-wang
check dogMike.
check bulldogMike.

解决方案三:

 I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.

解决方案四:

 I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.

解决方案五:
我们脑子也不是计算机,自己运行一下不就知道了

解决方案六:

I am Bob.wang-wangI am Mike.wang-wangI am Mike.wang-wangcheck dogMike.check bulldogMike.
时间: 2024-09-28 16:27:29

面向对象-请问这段程序的输出是什么 为什么的相关文章

请问这段代码为什么输出null,求大神解答程序执行的顺序?

问题描述 请问这段代码为什么输出null,求大神解答程序执行的顺序? public class xieCheng { private String baseName="Base"; public xieCheng(){ this.callName(); } public void callName(){ System.out.println(baseName); } } public class Sub extends xieCheng { private String baseNam

c#-请问这段代码的输出结果,and why?

问题描述 请问这段代码的输出结果,and why? class Person { private int age; public int Age { get { return age; } set { age = value; } } } class Program { static void Main(string[] args) { Console.WriteLine(GetPerson().Age); Console.ReadKey(); } static Person GetPerson

opencv c++-请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊!

问题描述 请问这段程序是什么意思呢?或者有没有大神帮我注释一下啊,跪谢啊! if(f) { if(!fgets(filename, (int)sizeof(_filename)-2, f)) break; //while(*filename && isspace(*filename)) // ++filename; if(filename[0] == '#') break; //continue; int l = (int)strlen(filename); while(l > 0

请问-这段程序为什么运行时会异常啊,在线急等

问题描述 这段程序为什么运行时会异常啊,在线急等 public class Test { public static void main(String[] args) { Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); Transaction

请问这段程序错哪了?

问题描述 usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;publicpartialclass_Default:

new-这段程序怎么修改?为什么没有输出结果?

问题描述 这段程序怎么修改?为什么没有输出结果? int[] iArrary = new int[] { 1, 5, 13, 6, 10, 55, 99, 2, 87, 12, 34, 75, 33, 47 }; for (int i = 0; i < iArrary.Length; i++) { for (int j =i+1; j < iArrary.Length; j++) { if (iArrary[i]>iArrary[j]) { int temp = iArrary[i];

请问这段水仙花数程序有什么问题

问题描述 请问这段水仙花数程序有什么问题 #includevoid main(){ int a b de=0; for (a = 1:;a++) { do { b = a % 10; d = a / 10; e = e + b*b*b; a = d; } while (d != 0); if (a==e) printf("" %dn""e); }}大神求解答诊断程序在VS2013中没有警告或错误,但是执行时弹出框只是光标在闪烁,没有其他任何数字或字母请问这段程序有什

输出-求用c语言编写这么一段程序

问题描述 求用c语言编写这么一段程序 1.用随机产生n个整数,赋给a数组 2.从小到大排序 3.计算最小数的阶乘 4.输出数组内容 解决方案 这个不难,就是先随机n个数放到数组再对数组排序,然后对数组第一个数求阶乘输出,最后输出整个排序过的数组,一步步来很简单 解决方案二: 参考代码段:https://github.com/707wk/Senior-middle-school/blob/master/Filling%20in%20the%20gaps.c 解决方案三: 你需要什么样的排序方式?最

二维数组-请问这段代码中最后输出元素的时候,有必要加个空格吗?

问题描述 请问这段代码中最后输出元素的时候,有必要加个空格吗? static void Main(string[] args) { int[,] score = new int[3, 5]; score[0, 0] = 103; score[1,4] = 80; for (int i = 0; i <3; i++) { for (int j = 0; j < 5; j++) { Console.Write(score[i, j] + " "); Console.WriteL