问:
1。abstract类能不能创建对象?abstract类能不能有构造器?
2。当子类继承父类的时候,创建了一个子类对象的同时,
   会不会隐式的创建了父类的对象?一直到object类
3。构造器如何执行?是只有创建类的对象的时候才会执行
   对应类的构造器吗?
4. 创建了对象就会分配内存吗?对象在内存中如何存储??
   创建子类对象的时候会在内存中开辟几个空间?如何能验证?
5。请解释以下代码:public abstract class Car {
Car(){
System.out.println("父类抽象类的构造器被执行");
}
public abstract void benChi() ;
public abstract void baoMa() ;
         public void hanma(){
          System.out.println("抽象类中的非抽象方法");
         }
}
class XiaoChe extends Car{
XiaoChe(){
System.out.println("子类的构造器被执行");
}
public void benChi() {
System.out.println("实现了父类的第一个抽象方法");
}
public void baoMa() {
System.out.println("实现了父类的第二个抽象方法");
}
}
public class test { public static void main(String[] args) {
           XiaoChe xChe = new XiaoChe();
xChe.benChi();
                  xChe.hanma();
      }}请加QQ:296222242 详细讲解,讲通者,给满分,可以继续补加分!!

解决方案 »

  1.   

    1 抽象类不能实例化,也就是不能new,可以有构造器,子类调用
    2 不会,只有一个对象,不过会包含父类的变量和方法
    3 先调用父类构造器知道Object
    4 父类抽象类的构造器被执行
      子类的构造器被执行
    实现了父类的第一个抽象方法
    抽象类中的非抽象方法
      

  2.   

    1。abstract类能不能创建对象?abstract类能不能有构造器?   抽象类不能实例化,也就是不能创建对象,abstract类有构造器,不然,他的普通子类怎么构造啊(递归调用构造器,引出问题2)2。当子类继承父类的时候,创建了一个子类对象的同时,会不会隐式的创建了父类的对象?一直到object类。  不会,但会递归调用父类一直到Object类的构造器3。构造器如何执行?是只有创建类的对象的时候才会执行 对应类的构造器吗?  这个涉及类的实例化顺序,大致的情况是,先加载父类和当前类的静态区域 (静态变量,静态方法,静态代码块),然后成员初值,然后是递归调用父类的构造器一直到Object.  最后是调用自己的构造器
       
      创建一个对象有好几种方法:
    1。 明确的new来创建
    2。 使用反射
    3.  静态工厂生成
    3。 使用clone来创建对象.
    4。 使用ObjectInputStream类的getObject()方法反序列化来生成一个对象.个人认为这些生成对象的方式,都直接或者间接的需要调用构造器来生成.    
    4. 创建了对象就会分配内存吗?对象在内存中如何存储??    嗯。 new 出来的都在堆中. java每次创建对象都需要为实例变量分配内存空间,但静态的变量永远只有一个。 所有局部变量都是放在栈内存中,但引用类型变量所引用的对象(包括数组,pojo)则总是存储在栈内存中.     创建子类对象的时候会在内存中开辟几个空间?如何能验证?
      
    5。请解释以下代码:
       不解释。 多态下的类的实例化顺序 书上都有,推荐 Thinking in java 上面讲的很清楚。
      

  3.   

    http://topic.csdn.net/u/20101108/22/0ddf7c3a-be35-4eed-932a-128a7035fae7.html
    前几天刚刚发过一篇相关帖子,可以去看看
      

  4.   

    子类调用父类的属性和方法,首先要看你的属性或者方法的可见性是不是大于protected的可见范围,然后用super.调用。
      

  5.   

    想知道原理就直接看《java虚拟机规范》第二版,一两句说不清的
      

  6.   

    这个讲的是相当清楚了,也同样推荐你看Thinking in Java!
      

  7.   

    还是没太明白,再研究吧。N天没上网了。
    5楼 的朋友   
    2。当子类继承父类的时候,创建了一个子类对象的同时,会不会隐式的创建了父类的对象?一直到object类。  不会,但会递归调用父类一直到Object类的构造器
    问:没有对象也可以递归调用构造器吗?