黑马程序员技术交流社区
标题: 入学笔记:this();和super();访问父类. [打印本页]
作者: ToSina 时间: 2015-12-3 19:18
标题: 入学笔记:this();和super();访问父类.
/*
要点: this();和super();访问父类.
注意: 如果父类无 无参构造,子类可用this(name,age);来访问子类的有参构造,继而访问父类的有参构造
还可以用子类的有参构造中用super();来访问父类的有参构造.
如果子类有无参和有参构造,父类没有空参构造,可以使用this(xx,xx);来访问本类的有参构造.
通过本类的有参构造访问父类的有参构造.
总结: 父类如果无无参构造,在子类可以用this(XXX,XXX);和super(XXX,xxx);来访问父类的有参构造.
this():通过访问子类的有参构造来,子类的有参构造通过super()来访问父类的有参构造.
super():可以通过子类的有参构造函数直接访问父类的有参构造.
本例中打印的是: 父类有参构造->子类有参构造 -> 子类无参构造 -> -- -> 父类有参构造->子类有参构造 ->18--xxx;
*/
- class Demo_extends {
- public static void main (String[] args){
- Son s1 = new Son();
- System.out.println("----------");
- Son s2 = new Son(18,"xxx");
- //System.out.println(getName()+"----"+getAge());//注意:调用变量和函数都是用对象来调用的.不能直接写.
- System.out.println(s2.getName()+"----"+s2.getAge());
- }
- }
- class Father {
- private String name;
- private int age;
- /*public Father(){ //Father类的空参构造
- System.out.println("父类的空参构造");
- }*/
- public Father(int age,String name){//Fatehr类的有参数构造
- this.age = age;
- this.name = name;
- System.out.println("父类的有参构造");
- }
- public void setName(String name){
- this.name = name;
- }
- public String getName(){
- return name;
- }
- public void setAge(int age){
- this.age = age;
- }
- public int getAge(){
- return age;
- }
- }
- class Son extends Father {
- public Son(){ //son类的空参构造
- this(18,"xxx");
- //super(); //第一句隐藏super();
- System.out.println("子类的无参构造");
- }
- public Son(int age,String name){ //son类的有参数构造
- super(18,"xxx");
- System.out.println("子类的有参构造");
- }
- }
复制代码
作者: xiaohu90 时间: 2015-12-3 19:19
胡兄好见解!!!
作者: 13666619050 时间: 2015-12-3 19:23
厉害,顶
作者: lucascgz 时间: 2015-12-3 19:24
学习了...
作者: lts0616 时间: 2015-12-3 20:17
学习了 谢谢
作者: 再续啸傲 时间: 2015-12-3 21:20
get and look look
作者: 魏志林 时间: 2015-12-3 21:25
有点复杂啊
作者: Little_jie 时间: 2015-12-3 21:47
学习了,this学的复杂,很容易混
作者: 1158147908 时间: 2015-12-7 23:41
赞一个,刷个分
作者: yubail 时间: 2015-12-8 07:49
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |