zoukankan      html  css  js  c++  java
  • 继承和接口课后作业

    动手动脑及验证:

    一、

    TestInherits.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();

      

      }

    }

    结果:

    结论:通过super调用基类的方法,必须是子类构造方法中的第一个语句。

    二、思考题

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

    解:因为构造函数是一种特殊的方法,主要用来在创建函数的时候用于初始化对象,即为对象成员变量赋初始值。总与new运算符一起使用在创建对象的语句中,并且,一个类可以有多个构造函数,课根据其参数个数的不同或者参数类型的不同来区分。

    构造对象,先调用其构造方法,用来初始化其成员函数和成员变量。子类拥有父类的成员变量和成员方法,则从父类继承而来的成员变量和成员方法得不到正确的初始化。

    不能反过来调用,因为父类不知道子类有什么变量而且子类也得不到初始化的父类变量,导致程序出错。

  • 相关阅读:
    Valid Palindrome
    LeetCode: Path Sum 2
    LeetCode: Path Sum
    LeetCode:Convert Sorted Array to Binary Search Tree
    LeetCode:Convert Sorted List to Binary Search Tree
    LeetCode: Balanced Binary Tree
    LeetCode: Maximum Depth of Binary Tree
    django文件上传,只上传一张
    URLError: <urlopen error [Errno 10061] >
    error: <class 'socket.error'>, [Errno 101] Network is unreachable: file: /usr/local/python2.7.12/lib/python2.7/socket.py line: 575
  • 原文地址:https://www.cnblogs.com/jingjing0629/p/4947735.html
Copyright © 2011-2022 走看看