精华内容
下载资源
问答
  •   创建子类实例的时候确实会在内存空间中存储父类的实例属性,这些是从方法区获得的,但是这些属性都是属于子类实例的。   另外,子类继承抽象类的时候,重写了所有抽象方法,并实例化一个子类对象的时候,会...

      结论:不会。

      创建子类实例的时候确实会在内存空间中存储父类的实例属性,这些是从方法区获得的,但是这些属性都是属于子类实例的。

      另外,子类继承抽象类的时候,重写了所有抽象方法,并实例化一个子类对象的时候,会实例化父类,也就是抽象类吗?不可能呀,抽象类是不能实例化的。

      所以创建子类实例的时候不会创建父类实例。

    展开全文
  • Java创建子类对象时的内存分配

    千次阅读 2017-12-07 18:24:16
    定义一个父类 public class Animal { private String color; public String getColor() { return color; } public void setColor(String color) { this.color = color;...定义一个子类 public class D

    定义一个父类

    public class Animal {
    	
    	private String color;
    
    	public String getColor() {
    		return color;
    	}
    
    	public void setColor(String color) {
    		this.color = color;
    	}
    	
    	public void introduce(){
    		System.out.println("my color is"+color);
    	}
    
    }

    定义一个子类

    public class Dog extends Animal{
    	
    	private String nickName;
    
    	public String getNickName() {
    		return nickName;
    	}
    
    	public void setNickName(String nickName) {
    		this.nickName = nickName;
    	}
    	
    	public void introduce(){
    		System.out.println("my color is"+super.getColor()+",my nickName is"+nickName);
    	}
    	
    	public static void main(String[] args) {
    		Dog dog=new Dog();
    		dog.setColor("黑色");
    		dog.setNickName("小黑");
    		dog.introduce();
    	}
    }
    


     创建子类对象时的内存分配图



    总结:子类对象是使用父类对象的空间来存储继承的属性内容


    展开全文
  • 通过子类调用父类的变量,有两种方法: 1.把父类的变量设置成public: package triangle.opengl.wlz.stu.childusefathervariable; import android.util.Log; public class BasePublicVariable { private String ...

    通过子类调用父类的变量,有两种方法:

    1.把父类的变量设置成public:

    package triangle.opengl.wlz.stu.childusefathervariable;
    
    import android.util.Log;
    
    public class BasePublicVariable {
        private String TAG = getClass().getName();
        public int data;
        public void ptData(){
            Log.d(TAG, "ptData: " + data);
        }
    }
    

     

    当我们这样做时,需要时直接在对象中设置这个变量的值就可以了,子类不需要任何处理:

    package triangle.opengl.wlz.stu.childusefathervariable;
    
    import triangle.opengl.wlz.stu.childusefathervariable.BasePublicVariable;
    
    public class ChildPublicVariable extends BasePublicVariable {
    
    }
    

    2.通过构造方法透传:

    package triangle.opengl.wlz.stu.childusefathervariable;
    
    import android.util.Log;
    
    public class BaseVariableInConstructed {
        private String TAG = getClass().getName();
    
        private int data;
        public BaseVariableInConstructed(int data){
            this.data = data;
        }
        public void ptData(){
            Log.d(TAG, "ptData: " + data);
        }
    }
    

    这时,子类可以使用super方法,调用父类的构造方法:

    package triangle.opengl.wlz.stu.childusefathervariable;
    
    import android.util.Log;
    
    public class ChildVaralbleInConstructed extends BaseVariableInConstructed {
        public ChildVaralbleInConstructed(int data) {
            super(data);
        }
    }
    

    最终的使用方式:

    package triangle.opengl.wlz.stu.childusefathervariable;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            test();
        }
    
        private void test(){
            ChildVaralbleInConstructed base = new ChildVaralbleInConstructed(100);
            base.ptData();
    
            ChildPublicVariable base2 = new ChildPublicVariable();
            base2.data = 10;
            base2.ptData();
        }
    }
    

     

    展开全文
  • 下面代码的输出是什么? public class Base { private String baseName = "base";...总结:java创建子类对象过程中,在构造父类对象时,若父类调用的方法被子类重写了,则调用的是的子类的方法。

    下面代码的输出是什么?

    public class Base
    {
        private String baseName = "base";
        public Base()
        {
            callName();
        }
    
        public void callName()
        {
            System. out. println(baseName);
        }
    
        static class Sub extends Base
        {
            private String baseName = "sub";
            public void callName()
            {
                System. out. println (baseName) ;
            }
        }
        public static void main(String[] args)
        {
            Base b = new Sub();
        }
    }
    

    答案: null

    解析:在创造派生类的过程中首先创建基类对象,然后才能创建派生类。创建基类即默认调用Base()方法,在方法中调用callName()方法,由于派生类中存在此方法,则被调用的callName()方法是派生类中的方法,此时派生类还未构造,所以变量baseName的值为null。

    总结:java创建子类对象过程中,在构造父类对象时,若父类调用的方法被子类重写了,则调用的是的子类的方法。

    展开全文
  • 答案是:创建子类对象时不会创建父类对象。我们创建子类对象时,只是说创建了父类空间,并进行了初始化。如果说创建子类的时候就会创建它的父类,那内存空间中不都是Object类的对象吗?(想想java的设计师也不会这么...
  • 答案是否定的,在Java创建一个子类对象是不会创建父类对象的。 通过一个实例来证明:实例:父类Base.javapublic class Base { private String str; public Base() { System.out.println("Base()"); ...
  • 关于java创建子类对象时,父类对象到底创建不创建 一个对象可以理解为一个房子,而一个类只是规定了什么地方要放什么东西,比如客厅要放沙发,餐厅要有餐桌 创建一个新对象,就是建造一栋新房子,如果你不去初始化...
  • 1. 会访问方法区中父类的元数据 2. 会在堆内存中为父类分配空间,用来存储父类实例属性 3. 但是,这块堆内存属于子类所有
  • 为什么80%的码农都做不了架构师?>>>   ...首先每个类的这些元数据,...总之,会为父类分配堆内存,但是这块内存属于子类的堆内存。 转载于:https://my.oschina.net/134596/blog/1641260
  • 创建子类对象时,Student s = new Student("school"); 该构造方法中没有显示调用父类的 构造方法,但还是编译成功了,![图片说明](https://img-ask.csdn.net/upload/201604/14/1460599555_25628.png) 该构造方法...
  • 作者:祖春雷 ...来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。...也可以这么说,当一个类被加载到虚拟机中时,由这个类创建的对象的布局就已经确定下来的啦。 H...
  • JAVA new子类的时候是否会创建父类

    千次阅读 2018-07-14 09:17:00
    JAVA new子类的时候是否会创建父类 问题: 学习java基础的记得自己死记硬背这句话: 子类创建的时候,会先隐式调用父类无参数构造方法(如果父类没有构造方法,系统则会给父类默认添加无参构造) 自己测试过,...
  • Java中Object类是其他所有Java类的基类(直接或间接继承),在Object类中会有一个默认的无参构造方法:public Object(){};在所有的Java类中如果没有显式的写出构造方法,...在Java中,创建子类对象时,因为可能会用到父类的
  • 使用Java创建自己的异常子类

    千次阅读 2017-12-25 15:53:37
    Java知多少(53)使用Java创建自己的异常子类 尽管Java的内置异常处理大多数常见错误,你也许希望建立你自己的异常类型来处理你所应用的特殊情况。这是非常简单的:只要定义Exception的一个子类就可以了...
  • Java基础之子类对象创建

    千次阅读 2019-03-20 10:01:11
    JAVA创建子类对象时 需要调用先父类的构造函数, 如果子类的构造方法中定义了需要调用的父类构造函数,则调用所指定的函数,如果子类构造方法中没有制定调用父类的构造方法,则调用父类的无参构造方法。...
  • 被调子类无参构造器这里我定义了一个父类Person,一个子类Student,创建第一个Student对象:运行结果如下:这个很容易理解,因为静态块是在类被加载的时候而加载的,因此父类和子类静态块优先被调...
  • ①加入A是一个接口或者抽象类,那么不可以创建对象,用起引用去指向其他子类或实现类来创建对象是可以的具体来说,假如一个类需要实现各种水果,香蕉,苹果等,有共同的方法eat()就必须给每一个类写一个方法public ...
  • 浅论创建子类对象时是否创建了父类对象

    千次阅读 多人点赞 2018-09-08 11:51:57
    浅论创建子类对象时是否创建了父类对象 这仅仅是我个人的理解,因为是初学者,所有可能存在理解错误或者不到位的情况。如果存在错误请指出,谢谢。 我们都知道在创建子类对象时,调用子类构造方法前,必须调用父类...
  • JAVA实验3创建Account子类

    千次阅读 2020-03-30 09:42:51
    创建两个Account类的子类:支票账户和储蓄账户,支票账户有一个透支限额,但储蓄账户不能透支。 (1)实现这些类; (2)编写测试程序,创建Account、SavingsAccount和CheckingAccount类的对象,调用它们的toString...
  • Java创建动物类animal,以及其子类

    千次阅读 2020-06-29 11:22:28
    (1)创建动物类animal 具有属性体重 具有方法移动(move)和睡觉(sleep) 移动时输出“animal moving” 睡觉上输出“animal sleepping” publicclassAnimal { intweight; publicvoidmove(){ System.out....
  • Java子类使用Override能否重写父类中的属性值?       首先,让我们来看一个例子,大家可以猜测下输出结果是什么。 1.父类 public class FatherClass { String info=...
  • 1、子类创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。这个地方我说的是初始化方法,而...
  • Java - 子类重写父类的方法

    千次阅读 2019-03-16 17:21:33
    如果子类可以继承父类的某个方法,子类就可以重写这个方法 . 比如实例: 测试类: public class Test3_17 { public static void main(String[] args) { // TODO Auto-generated method stub double english ...
  • Java中父类子类创建方式

    千次阅读 2009-12-02 10:43:51
    Java扩展类中,在初始化子类的时候,会先初始化父类的构造函数。   父类: package test; public class FatherClass { public FatherClass() { System.out.println("FatherClass Create");...
  • 创建子类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 2 3 4 5 ... 20
收藏数 441,633
精华内容 176,653
关键字:

java创建子类

java 订阅