zoukankan      html  css  js  c++  java
  • 动手动脑04

    1

    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();
        
      }
    
    }

    super调用基类构造方法,必须子类构造方法第一句。在下一级出来之后{super("Hello.Grandparent")}然后直接将这个传到上一级里面。

    2.为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?

    构造函数主要是用来在创建对象时初始化对象,即为对象成员变量赋初值。由于子类是继承父类的,所以创建子类对象时,必须先调用父类的构造方法,这样子类才能有父类的属性和方法。不能反过来是因为父类不知道子类有什么变量,而子类也得不到父类的初始化变量。

    3.在编译源码时,当遇到没有父类的类时,编译器会定义的默认的父类(一般为Object),public void println(Object x),这一方法内部调用了String类的valueOf方法。valueOf方法内部又调用Object.toString方法:

    public String toString() {

    return getClass().getName() +"@" +

    Integer.toHexString(hashCode());

    }

    4.方法覆盖分别方法是根据声明类属于哪一个例如:
      A a=new A();
      B b=new B();
      a.shu();
      b.shu();

    5.

    如果子类与父类有相同的字段,则子类中的字段会代替或隐藏父类的字段,子类方法中访问的是子类中的字段(而不是父类中的字段)。如果子类方法确实想访问父类中被隐藏的同名字段,可以用super关键字来访问它。如果子类被当作父类使用,则通过子类访问的字段是父类的。

    当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。

  • 相关阅读:
    [GXOI/GZOI2019] 旧词
    [HDU6756] Finding a MEX
    [洛谷P5110] 块速递推
    [CF739C] Alyona and towers
    1349. 修理牛棚
    L2-028 秀恩爱分得快 (25 分)
    L2-009 抢红包 (25 分)
    L1-043 阅览室 (20 分)
    2020年天梯赛-模拟赛 L1-6 检查密码 (15 分)
    L1-046 整除光棍 (20 分)
  • 原文地址:https://www.cnblogs.com/Excusezuo/p/9923730.html
Copyright © 2011-2022 走看看