首页 > 代码库 > java继承时候类的运行顺序问题
java继承时候类的运行顺序问题
子类在继承父类后,创建子类对象会首先调用父类的构造函数,先运行父类的构造函数,然后再运行子类的构造函数,例如以下所看到的:
class Father{ public Father(){ System.out.println("I am father"); } } public class Child extends Father{ public Child(){ System.out.println("I am child"); } public static void main(String[] args) { Father f=new Father(); Child c=new Child(); } }
当父类有带參数的构造函数时,子类默认是调用不带參数的构造函数,例如以下所看到的:
class Father{ public Father(){ System.out.println("I am father"); } public Father(String name){ System.out.println("I am father,My name is "+name); } } public class Child extends Father{ public Child(){ System.out.println("I am child"); } public static void main(String[] args) { Father f=new Father("Apache"); Child c=new Child(); } }
若想子类调用父类带參数的构造函数,须要用super()函数申明,例如以下:
class Father{ public Father(){ System.out.println("I am father"); } public Father(String name){ System.out.println("I am father,My name is "+name); } } public class Child extends Father{ public Child(){ super("Apache"); System.out.println("I am child"); } public static void main(String[] args) { Father f=new Father("Apache"); Child c=new Child(); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。