精华内容
下载资源
问答
  • 在Java中,当创建一个子类对象会不会创建父类对象??? 什么意思呢??? 看如下代码: public class Animal { int num; Animal(){ this.num = 10; } } class Cat extends Animal { Cat(){ ...

    在java中,当创建一个子类对象会不会创建父类对象???
    什么意思呢???
    看如下代码:

    public class Animal
    {
    	int num;
    	Animal(){
    		this.num = 10;
    	}
    }
    
    class Cat extends Animal
    {
    	Cat(){
    		super();
    	}
    }
    

    Cat类是Animal的子类,当创建Cat对象的时候,会不会在内存中现创建Animal对象呢???

    这个问题困扰了我好久,而且也一直被一些教材误导,教材上说,按照面向对象的思想,“没有爸爸,怎么会有儿子”,即 “没有父类怎么会有子类”。言外之意就是,说,创建子类对象时,先创建父类对象!!!然而真的是这样吗???

    我为了求证这个问题,我翻遍了国内的百度,其中看到了一个很经典的回答。如果父类是一个抽象类的话,当创建子类,难道会先创建父类吗,那么这不是和java的语法规则相互矛盾了吗?

    为了更好的求证,我去了国外的网站,并且看到了这个,如图:
    这里写图片描述

    看到图中的英文没???英语好的同学能看懂了吧,我就不解释了。
    结论:
    在Java中,当创建一个子类对象时,是不会先创建父类对象的。但是创建子类对象时,会去先调用父类的构造函数。

    欢迎大家给我留言!!!

    展开全文
  • 在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?) 提个问题:如果当创建一个子类对象会先创建父类对象的话,那么如果父类是抽象类的话,那该抽象父类也会被实例化喽,这与抽象类不能实例...

    https://blog.csdn.net/banzhengyu/article/details/81039757

    在java中,当创建一个子类对象会不会先创建父类对象?(如果父类是抽象类呢?)

    提个问题:如果当创建一个子类对象会先创建父类对象的话,那么如果父类是抽象类的话,那该抽象父类也会被实例化喽,这与抽象类不能实例化相互矛盾啊!

    package javase5;
    
    public abstract class Animal {
    	int age;
    	
    	public Animal() {
    		this.age = 6;
    		System.out.println("我是Animal类的无参构造函数");
    	}
    }
    
    package javase5;
    
    public class Cat extends Animal{
    	
    	public Cat() {
    //		super(); 
    //就算不写super();这行代码,系统也会默认自动调用父类的无参构造函数
    		System.out.println("我是Cat类的无参构造函数");
    	}
    
    	public static void main(String[] args) {
    		Cat cat = new Cat();
    		System.out.println(cat.age);
    		
    		Cat cat2 = new Cat();
    		System.out.println(cat2.age);
    	}
    
    }

     

    展开全文
  • C++中,子类对象创建需要预先创建父类对象,对象销毁顺序与此相反。假如父类构造函数只存在参构造,在子类对象实例化之前,便需要创建...看一般情况:父类和子类同时存在无参构造和参构造函数。 输出信息如...

    C++中,子类对象创建需要预先创建父类对象,对象销毁顺序与此相反。假如父类构造函数只存在有参构造,在子类对象实例化之前,便需要创建一个父类对象,在不存在默认无参构造情况下,系统时不知道怎么为你创建父类对象的。

    解决上述问题的办法,就是在子类创建时指定父类初始化方式,需要在子类的有参构造中使用冒号“:”。用一个例子说明:

    先看一般情况:父类和子类同时存在无参构造和有参构造函数。

    输出信息如下,说明子类Son创建之前,先利用父类Father的无参构造创建了一个对象。

    修改一下子类的有参构造函数:

    输出信息如下,这说明子类Son创建之前,先利用父类Father的有参构造创建了一个父类对象。

    再来看只存在有参构造的场景,删除父类Father和子类Son的无参构造,还原Son的有参构造函数为初始状态:

    直接报错,提示子类Son实例化必须初始化父类Father,父类只存在有参构造的情况下,系统不知道怎么为你创建一个父类,因此提示你指定父类的创建方式。利用冒号可以初始化父类对象,从而解决了这个问题。

    展开全文
  • 子类创建对象

    千次阅读 2016-09-27 09:06:16
    因为子类是继承自父类,所以在为子类创建对象之前,其会先后的为父类的静态全局变量、子类的静态全局变量进行初始化,之后再先后为父类的实例全局变量、子类的实例全局变量进行初始化。    1.子类要为父类的私有...
       

             因为子类是继承自父类,所以在为子类创建对象之前,其会先后的为父类的静态全局变量、子类的静态全局变量进行初始化,之后再先后为父类的实例全局变量、子类的实例全局变量进行初始化。

         

           1.子类要为父类的私有属性单独的在堆里开辟空间,这个空间不属于任何一个对象,原因是私有属性要使用必须要有个空间,并默认初始化,不会为父类的私有方法在堆里开辟空间,原因是私有方法在方法区。

           2.为子类开辟空间,为继承自父类的属性开辟空间,并为在父类里定义的、子类继承的方法开辟方法空间,然后为子类新增的方法开辟空间,(继承的方法的空间和新增的属性和方法的空间)

           3.一定会把子类的对象地址传到父类的构造方法,调用父类的构造方法,到类里头绑定的属性寻找并初始化,为子类继承的属性私有化,和为子类不能继承的属性私有化。若父类的构造方法是私有的,则子类对象不能创建,编译会出错

           4.调用子类的构造方法可以初始化子类新增的属性,和继承父类的属性和方法初始化。


    展开全文
  • 被调子类无参构造器这里我定义了一个父类Person,一个子类Student,创建第一个Student对象:运行结果如下:这个很容易理解,因为静态块是在类被加载的时候而加载的,因此父类和子类静态块优先被调...
  • 创建子类对象的时候,是子类的属性执行还是父类的静态方法执行???
  • 本人是刚学java的菜鸟,之前对“子类对象创建的同时没有创建父类对象”这一问题非常纠结,于是上网查找各种资料,浏览前辈的博客,个人觉得子类对象创建的同时父类对象没有被创建。 如上图所示,子类...
  • 1. 会访问方法区中父类的元数据 2. 会在堆内存中为父类分配空间,用来存储父类实例属性 3. 但是,这块堆内存属于子类所有
  • 时候我们需要创建包的子类包(空包)的时候我们发现,不知道如何在初始的包中创建子类包,随后在别的博客上看了好多解决方法,好多都是没有选中父类包,或者没有将下面这个选项勾掉,但是这个勾掉的话就把父类中...
  • 子类对象的创建过程

    千次阅读 2019-04-21 15:47:06
    简单说一说子类创建对象的时候,子类和其父类的创建过程。 如下所示: class A{ int v1=1; static int v2=2; static{} public A(){} } class B extends A{ int v3=3; static int v4=4; static{} public B(){} } 一:...
  • 进程的创建-Process子类(python 版)

    千次阅读 2017-10-24 13:10:19
    进程的创建-Process子类 创建新的进程还能够使用类的方式,可以自定义一个类,继承Process类,每次实例化这个类的时候,就等同于实例化一个进程对象,请看下面的实例:from multiprocessing import Process import ...
  • 浅论创建子类对象时是否创建了父类对象

    千次阅读 多人点赞 2018-09-08 11:51:57
    浅论创建子类对象时是否创建了父类对象 这仅仅是我个人的理解,因为是初学者,所有可能存在理解错误或者不到位的情况。如果存在错误请指出,谢谢。 我们都知道在创建子类对象时,调用子类构造方法前,必须调用父类...
  • 答案是:创建子类对象时不会创建父类对象。我们创建子类对象时,只是说创建了父类空间,并进行了初始化。如果说创建子类的时候就会创建它的父类,那内存空间中不都是Object类的对象吗?(想想java的设计师也不会这么...
  • 创建子类对象时,会把父类里的成员变量和方法也加载进内存(因为要加载进内存,所以要看下这些数据是怎么初始化的,所以调用了父类的构造,仅此而已,并不是去创建了父类对象) 然后用this和super这两个引用来区分...
  • 创建UICollectionViewCell子类单元格 创建一个定制的UICollectionViewCell子类是另外一种方法,对单元格的样式和行为可以提供更大的控制程度。 首先,我们创建一个UICollectionViewCell的子类。选择File > New...
  •   创建子类实例的时候确实会在内存空间中存储父类的实例属性,这些是从方法区获得的,但是这些属性都是属于子类实例的。   另外,子类继承抽象类的时候,重写了所有抽象方法,并实例化一个子类对象的时候,会...
  • JAVA中创建一个子类的执行过程

    千次阅读 2018-07-26 17:15:32
    1.首先,初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;  2.然后,初始化子类中的静态成员变量和静态代码块,...4.最后,初始化子类的普通成员变量和代码块,再执行子类的构造方法; ...
  • python 14关练习题 : ...在Book类的基础上,创建一个子类FictionBook类表示虚构类图书,并改造初始化方法,增加一个默认参数type = '虚构类'。 再利用str()方法打印出FictionBook类实例的相关信息。 ...
  • 关于java中创建子类对象时,父类对象到底创建不创建 一个对象可以理解为一个房子,而一个类只是规定了什么地方要放什么东西,比如客厅要放沙发,餐厅要餐桌 创建一个新对象,就是建造一栋新房子,如果你不去初始化...
  • 使用Java创建自己的异常子类

    千次阅读 2017-12-25 15:53:37
    Java知多少(53)使用Java创建自己的异常子类 尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了...
  • 答案是否定的,在Java中创建一个子类对象是不会创建父类对象的。 通过一个实例来证明:实例:父类Base.javapublic class Base { private String str; public Base() { System.out.println("Base()"); ...
  • Java基础之子类对象创建

    千次阅读 2019-03-20 10:01:11
    JAVA 中创建子类对象时 需要调用父类的构造函数, 如果子类的构造方法中定义了需要调用的父类构造函数,则调用所指定的函数,如果子类构造方法中没有制定调用父类的构造方法,则调用父类的无参构造方法。...
  • 创建子类student继承父类person

    千次阅读 2017-10-18 21:08:12
    知识点:实现子类继承父类import java.util.Scanner;//引用java.util.Scanner,不用从键盘上输入信息时,不需要用用到java.util.Scannerclass Person{static //创建Person String name;//定义变量name,static String ...
  • 1、子类创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。这个地方我说的是初始化方法,而...
  • 创建多线程程序的第一种方式:创建Thread类的子类 。 java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类。 实现步骤: 创建一个Thread类的子类。 在Thread类的子类中重写Thread...
  • 创建子类对象时,调用子类构造器时,会调用父类的无参构造器。(所以在一般定义类时都会定义一个无参构造器,以便于继承。)如图: 创建子类对象时 在此段代码中,如果父类中没有无参构造...
  • 创建子类对象调用父类构造器

    千次阅读 2013-11-23 00:21:04
    从第一段代码中可以看出,在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数,则会调用父类的默认无参构造函数 从第二段代码中可以看出,在创建子类对象时候,如果子类的构造函数没有显示调用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 691,243
精华内容 276,497
关键字:

如何创建先有子类