java持续 机关器 重载,重写

    添加时间:2013-7-5 点击量:


    持续的重写 (Override)


    class Base


    {


        ?public void function1()    ?//无参数的办法


        ?{


        ?    ?功能1;


        ?}


         ?public void function1(Datatype var1)    ?//带一个参数的办法


        ?{


        ?    ?功能2;


        ?}


    }



    class Sub extends Base


    {


        ?public void function1()


        ?[


        ?    ?//若是须要和父类的function1功能完全一样,直接调用父类的function1()


        ?    ?super.function1();


        ?    ?//若是子类的function1()功能和父类的不一样,那么就须要从头写子类的function1()


        ?    ?//各类自定义的..功能


        ?}    ?


    }





    =================================================================================



    持续的重载 (Overload)


    默认下子类持续了父类所有的public公有的办法,private的不克不及获得


    办法的重载是雷同的函数名,然则办法里面的参数列表不合,和一般办法重载一样


    所以当父类的function是private润饰时,子类的function是新建的和父类没紧要


    class Base


    {


        ?public void function1()    ?//无参数的办法


        ?{


        ?    ?功能1;


        ?}


         ?public void function1(Datatype var1)    ?//带一个参数的办法


        ?{


        ?    ?功能2;


        ?}


    }



    class Sub extends Base


    {


        ?public void function1(和父类参数列表不合的参数)


        ?{


        ?    ?功能;


        ?}


    }


    =================================================================================


    =================================================================================


    对父类机关器的调用


    子类不克不及获得父类的机关器


    子类不克不及直接应用父类的机关器,然则可以在子类的机关器中应用super(value)来调用父类的机关器



    class Base


    {


        ?Base(){}    ?//不带参数的机关器


        ?Base(Datatype var)


        ?{


        ?    ?功能1;


        ?}


        ?Base(Datatype var1,Datatype var2)


        ?{


        ?    ?功能1;


        ?    ?功能2;


        ?}


    }



    class Sub extends Base


    {


        ?Sub(){}    ?//不带参数的子类



        ?Sub (Datatype var1)    ?    ?//带一个参数的子类机关器


        ?{


        ?    ?super(var1);


        ?    ?其他功能;


        ?}


        ?


        ?Sub(Datatype var1,Datatype var2)    ?//带两个参数的子类机关器


        ?{


            ?super(var1,var2);


        ?    ?其他功能;


        ?}



        ?public static void (String[] arg)


        ?{


        ?    ?//如许应用子类的机关器,简介应用了父类的机关器,对这些初始化



        ?    ?//错误的应用


        ?    ?//new super(var1,var2); 不克不及直接调用父类的机关器


        ?}


    }




      1 class FatherA 
    
    2 {
    3 String name;
    4 FatherA()
    5 {
    6 System.out.println(FatherA不带参数的机关器);
    7 }
    8 FatherA(String name)
    9 {
    10 this.name = name;
    11 System.out.println(FatherA带一个参数的机关器 : + name);
    12 }
    13 }
    14
    15 class FatherB extends FatherA
    16 {
    17 String name;
    18 int age;
    19 String sex;
    20 FatherB()
    21 {
    22 System.out.println(FatherB不带参数的机关器);
    23 }
    24
    25 FatherB(String name)
    26 {
    27 super(name);
    28 System.out.println(FatherB带一个参数的机关器 : + name);
    29
    30 }
    31
    32 FatherB(String name , int age)
    33 {
    34 super(name);
    35 this.age = age;
    36 System.out.println(FatherB带两个参数的机关器 : + name + : + age);
    37 }
    38
    39 FatherB(String name ,int age ,String sex)
    40 {
    41 //super(name,age);其父类没有该机关器,故不克不及应用啦
    42 this(name,age); //调用本类的机关器
    43 this.sex = sex;
    44 System.out.println(FatherB带三个参数的机关器 : + name + : + age + : + sex);
    45 }
    46
    47 public void myFunction()
    48 {
    49 System.out.println(hello world);
    50 }
    51 public void myFunction1()
    52 {
    53 System.out.println(base class function);
    54 }
    55 }
    56
    57 public class SonClass extends FatherB
    58 {
    59 public SonClass() //无参数机关器
    60 {
    61 //super(admin,20);
    62 //System.out.println(显式调用了其父类的带两个参数的);
    63
    64 super();
    65 System.out.println(调用其父类不带参数的机关器);
    66 }
    67
    68 public SonClass(String name)
    69 {
    70 super(name);//调用其父类带一个参数的机关器
    71 System.out.println(显式调用一个参数的..);
    72 }
    73
    74 public SonClass(String name ,int age)
    75 {
    76 super(name,age);
    77 System.out.println(调用两个参数的...);
    78 }
    79
    80 public SonClass(String name , int age ,String sex)
    81 {
    82 super(name,age,sex);
    83 System.out.println(调用三个参数的...);
    84 }
    85
    86 public void myFunction(String name) //重载啦
    87 {
    88 System.out.println(name + hello world);
    89 }
    90
    91 public void myFunction() //重写了父类的function()
    92 {
    93 System.out.println(china hello world);
    94 }
    95 public static void main(String[] arg)
    96 {
    97 new SonClass(); //new一个无参数的对象
    98 System.out.println(============================);
    99 new SonClass(hello); //new一个带参数的对象
    100
    101 System.out.println(============================);
    102 new SonClass(china,20);
    103
    104 System.out.println(============================);
    105 new SonClass(japan,20,man);
    106
    107 System.out.println(============================);
    108new SonClass()).myFunction();
    109
    110 System.out.println(============================);
    111new SonClass()).myFunction(admin);
    112 }
    113 }


    我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》
    分享到: