lzth.net
当前位置:首页 >> supEr调用父类方法 >>

supEr调用父类方法

//父类动物 Public class Animal{ public int age = 10; public String name; public void eat(){ System.out.println("动物具有吃东西的能力"); } public Animal(int age){ this.age = age; System.out.println("Animal类构造方法执行了"); } }//子类

this是当前类的实例,super是父类的实例,this能调用当前类中的所有方法,包含从父类继承来的方法,如果在子类中没有重写这些继承过来的方法,那么使用super和this调用方法时效果是一样的,因此通常调用未重写的父类方法是直接用this不用super的.当且仅当你在子类中重写了父类方法,这时用super调用方法时走的是父类中的实现,用this调用时走的是你重写后的实现,此时this和super调用的不是同一个方法.

直接super()就可以了.如果想调用有参的,就按照父类有的构造方法的形参写就行了.你就记住,super指代的就是父类

子类的构造函数中super() 指的是调用父类的构造方法 , 你可以复写子类的构造方法达到你的目的

super.父类方法, 调用父类私有方法,方

super(参数)表示调用父类的有参构造方法,则super()调用无参数的构造方法或默认构造方法

回答你刚才追问的那部分:dialogInit(); this.dialogInit(); 这个是调用类中的方法(如果在子类中重载了dialogInit()这个方法,就是子类中的,如果没有就是直接调用父类中的方法,也就是等同于super.dialogInit();)

不对 ,只有在调用父类的构造方法是才使用super,普通方法,可以直接调用

是调用父类构造器,而且构造器中的其他内容还要写在super()之后,负责会出错.如果不写,是默认调用super().当然也可以显式的 调用其他构造器.这样父类构造器就不起作用了

子类可以调用父类的任何非私有方法,而用到super时可能子类中对父类的datacreat方法进行重写用super表明调用的是父类里的方法

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com