1、下面程序运行结果为: abstract class AA{ abstract void callme(); void metoo(){ System.out.println(“Inside AA’s metoo().”) } } class BB extends AA{ void callme(){ System.out.println(“Inside BB's callme().”) } void metoo() { System.out.println(“Inside AA’s metoo().”) } } public class Test ( public static void main(String args[]){ AA aa = new BB(); aa.callme(). aa.metoo(). } }
时间: 2024-04-05 07:34:33 浏览: 79
这段程序是一个简单的抽象类和继承的示例。运行结果为:
Inside BB's callme().
Inside AA’s metoo().
首先,创建了一个 AA 类的引用 aa,并用 BB 类的实例进行了初始化。这是合法的,因为 BB 类是 AA 类的子类。接着调用了 aa 的 callme() 方法,由于 BB 类已经实现了 callme() 方法,所以会输出 "Inside BB's callme()."。接着调用了 aa 的 metoo() 方法,由于 BB 类重写了 metoo() 方法,所以实际上调用的是 BB 类的 metoo() 方法,输出 "Inside AA’s metoo()."。
相关问题
1、下面程序运行结果为: 。abstract class AA{ abstract void callme(); void metoo(){ System.out.println(“Inside AA’s metoo().”)}}class BB extends AA{void callme(){System.out.println(“Inside BB’s callme().”)}void metoo(){ System.out.println(“Inside AA’s metoo().”)} }public class Test { public static void main(String args[]){ AA aa = new BB(); aa.callme(). aa.metoo(). }}
这段程序是有错误的。首先,BB类中的callme()方法缺少了一个右花括号,应该是这样的:
```
void callme(){
System.out.println("Inside BB's callme().");
}
```
其次,在Test类的main方法中,调用了aa.callme()和aa.metoo()方法,但是这两个方法都是void类型的,不能作为调用链的一部分。应该将它们分开调用,像这样:
```
AA aa = new BB();
aa.callme();
aa.metoo();
```
这样就可以正确运行程序了。运行结果将会输出:
```
Inside BB's callme().
Inside AA's metoo().
```
1、下面程序运行结果为: 。 abstract class AA{ abstract void callme(); void metoo(){ System.out.println(“Inside AA’s metoo().”) } } class BB extends AA{ void callme(){ System.out.println(“Inside BB’s callme().”) } void metoo(){ System.out.println(“Inside AA’s metoo().”) } } public class Test { public static void main(String args[]){ AA aa = new BB(); aa.callme(). aa.metoo(). } }
程序运行结果为编译错误。
在第11行中,`aa.callme()`返回的是void类型,不能再调用`aa.metoo()`方法。应该将第11行和第12行修改为:
```
aa.callme();
aa.metoo();
```
这样就可以正确地调用`callme()`方法和`metoo()`方法了。
阅读全文