判断下面程序的执行结果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40993326/article/details/81324381

 

说出下面程序的执行结果: 
interface InterfaceA { 
String S = "good "; 
void f(); 
} 

abstract class ClassA { 
abstract void g(); 
} 

class ClassB extends ClassA implements InterfaceA { 
void g() { 
System.out.print(S); 
} 

public void f() { 
System.out.print(" "+ S); 
} 
} 
public class Test { 
public static void main(String[] args) { 
ClassA a = new ClassB(); 
InterfaceA b = new ClassB(); 
a.g(); 
b.f(); 
} 
} 

good   good

Class B 继承了一个抽象类ClassA并覆写了其中的抽象方法  g() 方法

同时它继承了一个接口InterfaceA同时覆写了其中的 f() 方法

此时通过向上转型创建classA的实例化对象,然后a.g(),调用ClassA中g()方法,由于此方法被ClassB类覆写,所以调用覆写后的方法。

此时通过向上转型创建Interface A的实例化对象,然后b.g(),调用Interface A中f()方法,由于此方法被ClassB类覆写,所以调用覆写后的方法。

打印出的结果就为: good   good

展开阅读全文

谁能告诉我下面程序的编译结果?

08-21

您能把此程序 --编译-- 的结果告诉我吗?rn(注意:是编译的结果!!!我不要执行结果!)rn还有它的执行的详细过程告诉我吗?rn#inclde rnclass CShapernrn public:rn virtual void display()cout<<"Shape \n";rn;rn//------------------------------------------------------------------------rnclass CEllipse :public CShapernrn public:rn virtual void display()cout<<"Ellipse \n"; rn;rn//-----------------------------------------------------------------------rnclass CCircle :public CEllipsernrn public:rn virtual void display()cout<<"Circle \n";rn;rn//-----------------------------------------------------------------------rnclass CTriangle :public CShapernrn public:rn virtual void display()cout<<"Triangle \n";rn;rn//-----------------------------------------------------------------------rnclass CRect :public CShapernrn public:rn virtual void display()cout<<"Rect \n";rn;rn//------------------------------------------------------------------------rnclass CSquare public CRectrnrn public:rn virtual void display()cout<<"Square \n";rn;rn//------------------------------------------------------------------------rnvoid main()rnrnCShape aShape;rnCEllipse aEllipse;rnCCircle aCircle;rnCTriangle aTriangle;rnCRect aRect;rnCSquare aSquare; rnCShape* pShape[6]= &aShape,rn &aEllipse,rn &aCircle,rn &aTriangle,rn &aRect,rn &aSquare;rnfor(int i=0;i<6;i++)rn pShape[i]->display();rnrn//------------------------------------------------------------------------rn您能把此程序 --编译-- 的结果告诉我吗?rn(注意:是编译的结果!!!我不要执行结果!)rn还有它的执行的详细过程告诉我吗? 论坛

没有更多推荐了,返回首页