zoukankan      html  css  js  c++  java
  • 关于java继承条件下的构造方法调用

    首先是测试代码:

    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的调用必须是构造器中的第一个语句.

    将后面的super语句删除后,再次运行有:

     可以看到,我们成功调用了父类中的另一个构造方法。

    从这里我们可以学习到,super的调用必须是构造器中的第一个语句。即

  • 相关阅读:
    Swift,数组
    Android-Binder(一)
    Android 前台服务
    Android-Service和Thread
    Android-认识Service
    Android-属性动画
    Android-Activity的切换效果
    Android-LayoutAnimation
    django模板解析 循环列表中 切片和求长度
    ubuntu16 安装cron 以及使用
  • 原文地址:https://www.cnblogs.com/wushenjiang/p/11749818.html
Copyright © 2011-2022 走看看