【面向对象】Java子类的构造函数

版权声明:本文为博主项目中经验总结,著文备份,欢迎补充交流! https://blog.csdn.net/u013806583/article/details/69936278

父类:

package extend;

/**
 * Created by guan on 4/9/17.
 */
public class Parent {
    public String name;
    private String passwd;
    public Parent(String name,String passwd)
    {
        this.name=name;
        this.passwd=passwd;
    }

    @Override
    public String toString() {
        String s="name: "+name+
                "\tpasswd: "+passwd;
        return s;
    }
}

子类:

package extend;

/**
 * Created by guan on 4/9/17.
 */
public class Child extends Parent {

    public Child()
    {
        super("Child", "Child Passwd");
    }

    public Child(String name, String passwd) {
        super(name, passwd);
    }

    //========================================
    /**
     * main函数,程序入口
     * @param args
     */
    public static void main(String[] args)
    {
        System.out.println(new Child().toString());
        System.out.println(new Child("Guan","123456"));
    }
    //========================================

}

结果

name: Child     passwd: Child Passwd
name: Guan      passwd: 123456


子类继承父类中,子类会在构造函数中调用父类的构造函数:
1. 如果没有显式定义,系统会自动添加super()来调用父类构造函数。
- super()调用的是父类的无参构造函数。
- 如果父类 没有无参构造函数,则编译器报错。
2. 如果已经显式定义 ,则会根据定义的super(* ,* ,* , … )来调用对应的父类的构造函数.

猜你喜欢

转载自blog.csdn.net/u013806583/article/details/69936278