Fork me on GitHub

super() extends() private总结demo

  

 1 public class TestService {
 2     private String name;
 3     public TestService(String name)
 4     {        
 5         this.name=name;
 6     }
 7     public void setname(String name)
 8     {
 9         this.name=name;
10     }
11     public String name()
12     {
13         return name;
14     }
15     public static void main(String args[])
16     {
17         TestService a=new TestService("zzw");
18         System.out.println(a.name);
19     }
20     
21 
22 }
 1 public class ExtendsService extends TestService{
 2     public ExtendsService()
 3     {
 4         super("doc");
 5     }
 6     /*private String a;
 7     public ExtendsService(String a)
 8     {
 9         super(a);
10         this.a=a;
11     }*/
12     public static void main(String args[]){
13         ExtendsService ext=new ExtendsService();
14         System.out.println(ext.name());
15     }
16 
17 }
18 //在父子关系,父类中如果是private的时候是需要get set访问的。
19 //super的用法



 

 

如果是private的时候需要用访问器的方式进行访问

super("鸟") 直接继承了父类中的带参数的构造方法,同时把值“鸟”传了进去

备注:

 

 1 class A{
 2 public A(){} // 1:无参数构造方法。
 3 public A(String s){} // 2.
 4 }
 5 
 6 class B extends A{
 7 public B(String s){
 8 super(s); // 3.
 9 }
10 }
11 
12 说明:如果没有1处的无参数构造方法,那么3处一定要主动调用父类带参数的构造方法。
13 如果有1处的构造方法,那么3处代码可以不要,因为Java会自动默认调用父类的无参数构造方法。
14 
15 记住一点:在构造子类时,一定会调用到父类的构造方法。
16 所以父类要么有一个默认的无参数构造,这样Java会自动调用这个无参数的构造。如果父类没有
17 无参数的构造,那么就要你自己在子类的构造中,通过super()的方式调用父类的构造。

 

posted @ 2015-11-05 10:36  ZZZZW  阅读(271)  评论(0编辑  收藏  举报
AmazingCounters.com