100天代码提升计划-第13天
继承(三)
继承的典型应用
代码
父类
1 package Demo05; 2 3 public class Phone { 4 public void call(){ 5 System.out.println("打电话"); 6 } 7 public void send(){ 8 System.out.println("发短信"); 9 } 10 public void show(){ 11 System.out.println("显示号码"); 12 } 13 }
子类
1 package Demo05; 2 3 public class Newphone extends Phone { 4 5 @Override 6 public void show() { 7 super.show(); 8 System.out.println("显示头像"); 9 System.out.println("显示姓名"); 10 } 11 }
主方法
1 package Demo05; 2 3 public class Zphone { 4 public static void main(String[] args) { 5 Phone phone=new Phone(); 6 phone.call(); 7 phone.send(); 8 phone.show(); 9 System.out.println("==============="); 10 Newphone newphone=new Newphone(); 11 newphone.call(); 12 newphone.send(); 13 newphone.show(); 14 } 15 16 17 }
二、构造方法特点
1.子类构造方法中默认有一个super(),所以先执行父类在执行子类(无父没有子)-----无参构造
package Demo05; public class Fu { public Fu(){ System.out.println("父类无参构造方法"); } }
package Demo05; public class Zi extends Fu { public Zi(){ System.out.println("子类无参构造方法"); } }
package Demo05; public class Fuandzi { public static void main(String[] args) { Zi zi =new Zi(); } }

2.可以通过super()调用父类重载构造
package Demo05; public class Fu { public Fu(){ System.out.println("父类无参构造方法"); } public Fu(int num){ System.out.println("父类有参构造方法"); } }
package Demo05; public class Zi extends Fu { public Zi(){ super(10); System.out.println("子类无参构造方法"); } }
package Demo05; public class Fuandzi { public static void main(String[] args) { Zi zi =new Zi(); } }

3.super()父类的构造调用,必须是子类构造方法的第一个调用语句



三、super关键字的用法
1.在子类的方法中,访问父类的成员变量
2.在子类的成员方法中访问父类的成员方法
3.在子类的构造方法中访问父类的构造方法
代码
package Demo05; public class Fu { int num=10; public void method(){ System.out.println("父类成员方法"); } public Fu(){ System.out.println("父类无参构造"); } }
package Demo05; public class Zi extends Fu { int num=20; public void methodzi(){ System.out.println(super.num);//调用父类的num } public void method(){ super.method();//调用父类成员方法 System.out.println("子类成员方法"); } public Zi(){ super();//调用父类无参构造 System.out.println("子类无参构造"); } }
package Demo05; public class Fuandzi { public static void main(String[] args) { Zi zi =new Zi(); System.out.println("============="); zi.methodzi(); System.out.println("============="); zi.method(); } }


浙公网安备 33010602011771号