-
一道高级java面试题5
public class Shape {
private int i=10;
public Shape(){
i = 20;
print();
}
public Shape(int m){
i = m;
print();
}
public void print(){
System.out.println("This shape=>"+i);
}
}
public class Circle extends Shape{
private int i = 20;
public void print(){
System.out.println("this circle=>"+i);
}
public Circle(){
this.i = 30;
print();
super.print();
}
public static void main(String[] args){
Shape shap = new Circle();
}
}
请问输出什么结果呢?
为何第一输出的是this circle=>0??实在是搞不懂。2010年3月19日 22:33
4个答案 按时间排序 按投票排序
-
采纳的答案
new操作明确一点首先调用的是父类的构造方法:
引用public Shape(){
i = 20;
print();
}
在调用print()时,print被重写,去调用Circle的print()方法。
public void print(){ //Circle System.out.println("this circle=>"+i); }
Circle 的i还没被被赋值,在加载类的时候整型变量均被赋值为0。所以输出 “this circle=>0”
'''''''''''如果你把shape里的print()方法改为private,
'''''''因为没有被重写,不存在多态。这时调用的为父类Shape中的print方法。
==========================================
2010年3月19日 22:59
-
代码就执行顺序是这样子的。下面用(1),(2),(3)......表示它们执行顺序 (1)private int i = 0;(Circle类) (2)private int i = 0;(Shape类) (3)i = 10;(Shape类) (4)i = 20;(Shape类) (5)print();(Circle类)(因为前面i只是被定义过,但是没有被赋值,所以打印的时候是0) (6)i = 20;(Circle类) (7)Circle()(Circle类)
2010年3月19日 23:54
-
将父类的print改为私有方法,不存在多态。
class Shape { private int i=10; public Shape(){ i = 20; print(); } public Shape(int m){ i = m; print(); } private void print(){ System.out.println("This shape=>"+i); } } public class Circle extends Shape{ private int i = 20; public void print(){ System.out.println("this circle=>"+i); } public Circle(){ this.i = 30; print(); //super.print(); 因为父类为私有的print,不能在这个类里调用。 } public static void main(String[] args){ Shape shap = new Circle(); } }
/*****output
This shape=>20
this Circle=>302010年3月19日 23:07
-
参考 我的文章说明
http://lovewhzlq.iteye.com/admin/blogs/452636
初始化的实际过程:
1.在其他任何事物发生之前,将分配给对象的存储空间初始化成二进制的0。
2.调用基类构造器。(这个步骤会不断反复递归下去,首先是构造这种层次结构的根,然后是下一层子类,等等,直到最低层的子类)
3.按声明顺序调用成员的初始化方法。
4.调用子类的构造器主体。2010年3月19日 22:53
相关推荐
JAVA笔试题,面试题JAVA笔试题,面试题JAVA笔试题,面试题JAVA笔试题,面试题JAVA笔试题,面试题
2018最新最全java高级工程师面试题,2018最新最全java高级工程师面试题2018最新最全java高级工程师面试题,2018最新最全java高级工程师面试题 十几个文档
java笔试题面试题java笔试题面试题java笔试题面试题java笔试题面试题java笔试题面试题java笔试题面试题
1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试...
Java面试题以及答案整理
Java经典高级2023面试题大全带答案.pdf 发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题,0积分直接下载
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笔试题面试题 27 西安电讯盈科java笔试题 27 华为Java笔试题: 28 Java多线程常见面试题 31 Java企业面试题整理集合(1) 34 Java企业面试题整理集合(2) 43 Java企业面试题整理集合(3) 55 Java企业面试题...
这份资源是一份包含1000+道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笔试题汇总资料,包括基础面试题、JavaWeb面试题、JAVA面试题集.txt、分布式相关面试题...
2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里...
java面试笔试资料java笔试题大集合及答案题库java笔试题汇总资料188个合集 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx ...
java中高级面试题十大总结 java中高级面试题十大总结 java中高级面试题十大总结 java中高级面试题十大总结
原创一道Java笔试面试题考考大家!附带答案!
java面试笔试题库java软件设计java笔试题大集合及答案文档资料合集300MB“ 100家大公司java笔试题汇总.doc 125条常见的java 面试笔试题大汇总.pdf 2011最新整理java经典代码.doc 25个经典的Spring面试问答.docx 8张...