[java]构造方法super() this()

xiaoxiao2021-02-28  50

1. package com.ma.demo5; public class Fu { int age = 10; public Fu() { } public Fu(int i) { System.out.println("父带参构造"); } } --- package com.ma.demo5; public class Zi extends Fu { public Zi() { // super(); 默认 System.out.println("子空参构造"); } public Zi(int i) { System.out.println("子带参构造"); } } --- 父无参构造 子空参构造 ---------------- 父无参构造 子带参构造 2.父类无空参构造解决: package com.ma.demo5; public class Fu { int age = 10; public Fu(int i) { System.out.println("父带参构造"); } } --- package com.ma.demo5; public class Zi extends Fu { public Zi() { super(); System.out.println("子空参构造"); } public Zi(int i) { System.out.println("子带参构造"); } } ---- 方法1: 子类调用父类的实参构造 package com.ma.demo5; public class Zi extends Fu { public Zi() { super(10); System.out.println("子空参构造"); } public Zi(int i) { super(10); System.out.println("子带参构造"); } } 方法2:子类使用this()调用子类的空参构造. package com.ma.demo5; public class Fu { int age = 10; public Fu(int i) { System.out.println("父带参构造"); } } --- package com.ma.demo5; public class Zi extends Fu { public Zi() { super(10); System.out.println("子空参构造"); } public Zi(int i) { this(); System.out.println("子带参构造"); } } --- package com.ma.demo5; public class Test { public static void main(String[] args) { Zi zz = new Zi(); System.out.println("----------------"); Zi zz2 = new Zi(10); } } ------ 父带参构造 子空参构造 ---------------- 父带参构造 子空参构造 子带参构造
转载请注明原文地址: https://www.6miu.com/read-82499.html

最新回复(0)