`
hai0378
  • 浏览: 515028 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java 子类对象实例化 面试题

阅读更多
子类对象实例化面试题,拿来给大家分享下了,希望指点哦
package com.gem.j2SE03;
abstract class A {
	private int x = 100;
	public A(){
		this.print();
	}
	public abstract void print();
}
class B extends A {
	
		private int x = 200;
		public B(int x){
			this.x = x;
		}
		public void print(){
			System.out.println("x=" + x);
		}
	}


public class TestJava
{
	private void mian()
	{
		A a = new B(20);

	}

}
答案:x=0
子类的实例化过程:应该是先调用父类中的构造方法,然后再执行子类中的自己的构造方法了,查了资料才看到的,学了不少哦

 

分享到:
评论
3 楼 emparadise329 2009-08-05  
进一步学习了子类与父类间的关系
2 楼 hai0378 2009-07-29  
有道理,又学习了新东西了,谢谢,大家共进步
1 楼 zhanglian123 2009-07-29  
A a = new B(20);  
这个时候a已经向上转型,只能看成A类型,不能看成B类型.
A的x,与B的x,作用范围不一样.

楼主:先调用父类中的构造方法,然后再执行子类中的自己的构造方法...这个是对的,就是这样.
A a =这个时候 x的时候是100,但是A构造器,调度print(); 由于B实现A类方法,这个时候,又会去调度B的print(); 但是这个时候并没有调度到B的构造器,导致B的x的没有赋值200,所以x=0;

A a = new B(20); 
的执行顺序:A的构造器,A的print()方法; B的print()方法;B的构造器.(而调度B的构造器才会赋值成功)
建议在把构造器在加一下下面语句,就会明白他们真正执行顺序.
public A(){  
        this.print();
        System.out.println("x=" + x);  
    } 
public B(){  
        this.print();
        System.out.println("x=" + x);  
    }

相关推荐

    JAVA面试题JAVA面试题JAVA面试题JAVA面试题

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即...

    史上最全Java面试题目大集合

    整理了网上的一些java面试题目,很全很强大 面向对象的特征有哪些方面 1. 抽象:抽象就是忽略一个主题中与当前目标2. 无关的那些方面,3. 以便更充分地注意与当前目标4. 有关的方面。抽象并不5. 打算了解全部问题...

    JAVA面试题最全集

    除了使用new关键字创建对象意外,试列举另外三种以上创建实例的方式? 37.classloader中,JDK的API、Classpath中的同web-inf中的class加载方式有什么区别? 38.列举三种以上垃圾回收算法,并比较其优缺点? 39....

    Java面试题总览

    JAVA面试题总览, 包含如下: 1. JAVA中的几种基本数据类型是什么,各自占用多少字节。 2. String类能被继承吗,为什么。 3. String,Stringbuffer,StringBuilder的区别。 4. ArrayList和LinkedList有什么区别。 5. ...

    Java面试题大全(doc)

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:封装是把...

    java面试题静态加载顺序构造方法

    10.都加在完后就要实例化对象了。 11.实例化Z之前,还得先实例化X对吧。因为子类的构造方法都会调用父类的构造方法。 12.那就先实例化X类吧。 13.执行X方法前还得先初始化对不。也就是获取所有属性。那么X类的...

    Java面试题超级全.zip

    整理了很久很久Java面试题,很全面,从java基础、框架、数据库、分布式、微服务等等都有。 我总结成四个阶段的面试题了,详细可以看资源。 以下是资源中的部分内容: ## 73.抽象的(abstract)方法是否可同时是静态的...

    java面试题

    java面试题 基础题122道 代码题19道 JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部...

    java面试题大全(2012版)

    70、TreeSet里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 48 71、说出一些常用的类,包,接口,请各举5个 49 72、java中有...

    java面试800题

    《java面试800题(包括java,数据库,前台等,绝对全面)》 Q0027 哪些SQL语句在执行时是自动提交的? 数据定义语言DDL是自动提交的。 Q0028 索引对数据库的影响? 提高查询速度 Q0029 主外键有什么关系? 外键是从...

    java 面试题 总结

    而通常的内部类需要在外部类实例化后才能实例化。 22、JSP中动态INCLUDE与静态INCLUDE的区别? 动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 静态...

    Java经典面试题.pdf

    1.什么是Java的自动装箱和拆箱? 自动装箱是指将基本数据类型转换为对应的包装类对象,以便于在需要使用对象的地方进行操作。例如,将int类型的数据自动转换为Integer对象。 自动拆箱是指将包装类对象转换为对应的...

    超级有影响力霸气的Java面试题大全文档

    超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。...

    200道java面试题资料.pdf

    Java中的多态性指在一个类实例化时,它可以引用多种不同类型的对象并自动调用适当的方法。这个特征让Java程序员能够更加灵活地编写代码,并且简化了许多任务。 Java中有两种多态性:静态多态性和动态多态性。静态多...

    java软件开发工程师面试题

    抽象类是不能被实例化的,就是不能用new调出构造方法创建对象,普通类可以直接实例化。 如果一个类继承于抽象类,则该子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为abstract类...

    java很好的面试题

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把...

    Java常见的面试程序题

    最常见的Java面试题大全的程序面试程序,很有影响力的哦!好好珍惜这个资料吧!有Java的常见面试题的冒泡,常见的算法,继承,多态 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与...

    java面试题.zip

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3)封装:封装是把...

    java面试笔试题大汇总

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    JAVA经典基础面试题及答案.docx

    抽象类是一种不能被实例化的类,它只能被用来作为其他类的基类。抽象类可以包含抽象方法和非抽象方法,但是至少有一个抽象方法。 什么是接口? 接口是一种抽象类型的实现,它定义了一组方法的签名,但是并没有具体...

Global site tag (gtag.js) - Google Analytics