首页 > 代码库 > 07-继承与接口动手动脑及课后实验性问题总结
07-继承与接口动手动脑及课后实验性问题总结
一.运行TestInherits.java示例,观察输出,注意总结父类与子类之间构造方法的调用关系修改Parent构造方法的代码,显式调用GrandParent的另一个构造函数,注意这句调用代码是否是第一句,影响重大!
class Grandparent { /*public Grandparent() { System.out.println("GrandParent Created"); }*/ public Grandparent(String string) { System.out.println("GrandParent Created.string"+string); } } class Parent extends Grandparent{ public Parent(){ super("Hello.Grandparent");//调用有参数的函数,继承父类 System.out.println("Parent Created"); //super("Hello.Grandparent");//必须放在第一句 } } class Child extends Parent{ public Child(){ System.out.println("Child Created"); } } public class TestInherits { public static void main(String[] args) { // TODO Auto-generated method stub Child c=new Child(); } }
结论:通过super调用基类构造方法,必须是子类构造方法中的第一个语句。
二.动手动脑:请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。
package Work; class A{ public A(){ System.out.println("Class A."); } public A(String string){ System.out.println("Class A."+string); }} class B extends A{ public B(){ super("string "); System.out.print("Class B."); } } public class Test01 extends B { public static void main(String[] args) { B b=new B(); } }
07-继承与接口动手动脑及课后实验性问题总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。