zoukankan      html  css  js  c++  java
  • 在构造函数中调用另一个构造函数

    直接贴代码:

    package source;
    
    public class Hero {
        private int hp;
        private double damage;
        private String name;
        
        Hero(String name){
            this.name = name;
        }
        
        Hero(String name,int hp,double damage){
            this(name);
            this.hp = hp;
            this.damage = damage;
        }
        
        public void setHp(int hp) {
            this.hp = hp;
        }
        public int getHp() {
            return hp;
        }
        public static void main(String[] args) {
            Hero h = new Hero("garren",10,1.1);
        }
    }

    优点:公共的构造器代码只需要编写一次,提高复用性

    下面我们来看子类调用父类的构造函数

    public Manager(String name,double salary,double bonus){
        super(name,salary);
        this.bonus = bonus;
    }

    注意:

    1,使用super调用超类构造器的语句必须是子类构造器的第一条语句。

    2,如果子类的构造器没有显式地调用超累的构造器,则自动调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,在子类中又没有显式调用超类的其他构造器,那么Java编译器将报错。

    3,被调用的父类的该构造器必须被public或protected修饰

    this和super都用类似的两个用法:

    1,引用隐式参数(调用超类方法)

    2,调用该类的其他构造器(调用超类的构造器)

  • 相关阅读:
    Pyechart——学习
    matplotlib——散点图、条形图、直方图
    matplotlib——折线图
    寻找n以内的亲密数对
    Golang判断时间点处于今天
    寒假作业3
    寒假作业2
    面向对象程序设计寒假作业1
    自我介绍
    关于cve2019_0708的反弹shell
  • 原文地址:https://www.cnblogs.com/Joey777210/p/11759878.html
Copyright © 2011-2022 走看看