package com.bjpowernode.t02inheritance.c09;
/*
* 使用super调用父类的构造方法 */public class TestSuper02 {public static void main(String[] args) {
IPhoneX iPhoneX1 = new IPhoneX(10); IPhoneX iPhoneX2 = new IPhoneX();// System.out.println(iPhoneX.color);// System.out.println(iPhoneX.model); }}
class IPhone{
String color; String model; public IPhone() { System.out.println("父类的无参构造方法"); }public IPhone(String color, String model) {
System.out.println("父类的有参构造方法"); this.color = color; this.model = model; }}class IPhoneX extends IPhone{
int a; public IPhoneX() { //系统会默认调用父类的无参构造方法 //通过下面语句去调用构造方法 //如果没有显示的编写的话,系统会提供默认的 //如果显示编写的话,一定要保证super出现在构造方法中的第一行 //this(10);//this和super不能同时出现在构造方法中 //super("土豪金","iPhone x");//手动调用父类中的有参构造方法 System.out.println("子类无参构造"); System.out.println(this.a); }public IPhoneX(int a) {
this(); //super("土豪金","iPhone x"); System.out.println("子类有参的构造方法"); this.a = a; }}