码迷,mamicode.com
首页 > 其他好文 > 详细

动手动脑

时间:2019-11-12 20:23:30      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:初始   padding   str   转换   bsp   oid   pad   object类   inherits   

 

技术图片

 

 

 

TestInherits.java

package Test;

 

class Grandparent

{

    public  Grandparent()

    {

        System.out.println("Grandparent Created.");

    }

    public Grandparent(String string)

    {

        System.out.println("Grandparent Created.String:"+string);

    }

   

}

 

class Parent extends Grandparent

{

    public Parent()

    {

        super("Hello.Grandparent.");

        System.out.println("Parent Created");

        //super("Hello.Grandparent.");

    }

   

}

 

class Child extends Parent

{

    public Child()

    {

        System.out.println("Child Created");

    }

   

}

 

public class TestInherits

{

    public static void main(String args[])

    {

        Child c=new Child();

    }

 

}

 

 技术图片

 

 

但是如果将其中一段改成

public Parent()

    {

        //super("Hello.Grandparent.");

        System.out.println("Parent Created");

        //super("Hello.Grandparent.");

    }

 技术图片

 

 

super("Hello.Grandparent.");注释后,调用的是GrandParent类的第一个构造函数了。这说明运行子类前必须先运行父类的构造函数,且super方法只能放在子类构造函数的第一句。

 

 技术图片

 

 技术图片

 

 

 

 

因为子类继承了父类的属性与方法,要想初始化子类的对象,首先便需要父类的属性和方法,所以需要先调用父类的属性和方法,然后再在构造自己在父类基础上增加的属性和方法。

 

 

2.

 技术图片

 

 

真相是神马?

ExplorationJDKSource.Java

public class ExplorationJDKSource {

 

/**

 * @param args

 */

public static void main(String[] args) {

    System.out.println(new A());

}

 

}

 

class A{}

 

 技术图片

 

 技术图片

 

 会发现输出的是object类,然而object类转换成字符串时会变成  类名@地址 的格式。

 技术图片

 

 

3.

 技术图片

 

 

在子类中,要调用父类中被覆盖的方法,可以使用super关键字。

 

package Test;

 

public class TestOverWrite {

 

    public static void main(String args[])

    {

        B b=new B();

        b.bFunction();

        b.bFunction2();

    }

}

 

 

class A

{

    public void aFunction()

    {

        System.out.println("A!");

    }

}

 

class B extends A

{

    public void bFunction()

    {

        System.out.println("B!");

       

    }

    public void bFunction2()

    {

        super.aFunction();

    }

}

 

 

运行结果如下:

B!

A!

4.

 技术图片

 

 技术图片

动手动脑

标签:初始   padding   str   转换   bsp   oid   pad   object类   inherits   

原文地址:https://www.cnblogs.com/PSLQYZ/p/11844605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!