-
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(============================);
108 (new SonClass()).myFunction();
109
110 System.out.println(============================);
111 (new SonClass()).myFunction(admin);
112 }
113 }
我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》