zoukankan      html  css  js  c++  java
  • java 继承中的构造方法

     规则如下:

      1.子类的构造过程必须调用父类(基类)中的构造方法。

        简单理解:子类继承了父类,子类创建出来的同是也必须把父类创建出来。(没有父亲,哪来儿子)

      2.子类可以在自己的构造方法中使用super(argument_list)调用父类(基类)的构造方法。

        如果调用了super,必须写在子类构造方法的第一行。

      3.如果子类的构造方法中没有显示的调用父类的构造方法(子类构造方法中没有写super),则系统默认调用父类无参的构造方法

      4.如果子类在构造方法中既没有显示调用父类的构造方法,而父类中又没有无参的构造方法,则编译出错。

    class Person{
        
        public String name;
        public int age;
        //    有参的构造方法
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    
    }
    
    class Student extends Person{
        
        //规则一:
        //子类的构造方法中必须调用父类的构造方法
        public Student(String name, int age, String stuNum, String school) {  
            //规则二:
            //super必须位于子类构造方法的第一行!
            super(name, age);
            this.stuNum = stuNum;
            this.school = school;
        }
    
        public String stuNum;
        public String school;
        
        //规则四:
        //这里由于构造方法中既没有显示调用父类Person的构造方法,父类又没有无参的构造方法
        //所以编译器报错
        public Student(){ }
        
    }
    
    
    public class Test {
        public static void main(String[] args) {
            
        }
        
    }
    class Person{
        
        public String name;
        public int age;
        //    有参的构造方法
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
        //添加无参的构造方法
        public Person(){
            System.out.println("我是父类的无参构造方法");
        }
    
    }
    
    class Student extends Person{
        
        public String stuNum;
        public String school;
        
        //第三条规则
        //这里由于构造方法中没有显示调用父类Person的构造方法,系统默认调用父类的无参构造方法
        public Student(){ }
        
    }
    
    
    public class Test {
        public static void main(String[] args) {
            Student s = new Student();
        }
        
    }

      测试结果:我是父类的无参构造方法

  • 相关阅读:
    基于统计语言模型的分词方法
    隐马尔可夫模型(五)——隐马尔可夫模型的解码问题(维特比算法)
    6. D3DXMatrixOrthoLH +正交投影矩阵
    4. Triangle
    顶点坐标变换(D3DXMatrixOrthoLH, D3DXMatrixPerspectiveFovLH)
    7. 透视投影矩阵
    8. 世界矩阵使物体移动
    D3D中的世界矩阵,视图矩阵,投影矩阵
    9. 视图矩阵(摄像机)
    5. Quad
  • 原文地址:https://www.cnblogs.com/javawork/p/3207376.html
Copyright © 2011-2022 走看看