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,调用该类的其他构造器(调用超类的构造器)

  • 相关阅读:
    设置网络
    href
    webpack学习
    那些个像素
    jquery Id选择器与document.getElementByIdy区别
    又一个很垃圾的设计
    卸载QQ,360,迅雷,搜狗
    CheckFail设计很垃圾
    js写法【2】
    require的定义看不懂【2】
  • 原文地址:https://www.cnblogs.com/Joey777210/p/11759878.html
Copyright © 2011-2022 走看看