java 类继承构造函数 java 继承 构造函数 |
您所在的位置:网站首页 › 课程类型a类b类c类 › java 类继承构造函数 java 继承 构造函数 |
1. 继承中构造函数的调用顺序 先调用父类构造,再调用子类构造 原因: 必须要先给父类分配空间,这样子类才可以继承 注意事项: a.对于父类的变量,子类继承,但是是有自己的空间 b.静态变量不继承,是存在于Java虚拟机分配的数据空间里 c.构造函数也不继承 2.关于super关键字 当父类拥有无参构造时,子类的构造函数可以不写什么,默认调用; 当然也可以通过super()调用。 e.g: package com.xiyou.weijie.chap5; public class Base { protected int a; public Base() { System.out.println("Base无参构造"); } public Base(int a) { this.a = a; System.out.println("Base有参构造"); }} package com.xiyou.weijie.chap5; public class Child extends Base{ private int b; public Child() { /* * 这里不写任何语句,但是会隐形的调用父类的无参构造 * super();这样是显性调用 */ System.out.println("Child无参构造"); } public static void main(String[] args) { // TODO 自动生成的方法存根 Child c=new Child(); } }
如果父类只有有参构造函数,子类必须显性super(实参表)写构造函数 e.g: package com.xiyou.weijie.chap5; public class Base { protected int a; public Base(int a) { this.a = a; System.out.println("Base有参构造"); } }package com.xiyou.weijie.chap5; public class Child extends Base{ private int b; public Child() { super(14);//如果这里不写,报错 System.out.println("Child无参构造"); } public static void main(String[] args) { // TODO 自动生成的方法存根 Child c=new Child(); } }
3.super关键字其他使用 a.调用父类同名被隐藏的成员变量 方式: super.变量名 b.调用父类同名被覆盖的成员方法 方式:super.方法名() e.g: package com.xiyou.weijie.chap5; public class Base { protected int a; public Base(int a) { this.a = a; System.out.println("Base有参构造"); } public void showBase() { System.out.println("Base.showBase()"); } }package com.xiyou.weijie.chap5; public class Child extends Base{ private int a; public Child(int a) { super(14);//如果这里不写,报错 this.a=a; System.out.println("Child无参构造"); } public void showBase() { System.out.println("super.a:"+super.a); } public void showChild() { System.out.println("a:"+a); } public void show() { super.showBase(); } public static void main(String[] args) { // TODO 自动生成的方法存根 Child c=new Child(10); c.showBase(); c.showChild(); c.show(); } }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |