override 是覆写,overload 是重载。
override 是覆写父类中的已经存在的方法,在完父类方法提供的功能上,加入新的内容,或完成修改方法提供的功能。
如:
运行结果为:
注意:super 表示父类
一般override的比较多的有 equals()
Object 的定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
还有 finalize
protected void finalize() throws Throwable { }
overload 重载是在现在类的提供的参数上,加入新的参数功能。
最出名的就是 System.out.println() 了。
你可以用同样的函数,输出不同的数据类型
如: 字符串 System.out.println("This is a TEST");
日期对象 System.out.println(new Date());
整型 System.out.println(500);
布尔型 System.out.println(obj1.equals(obj2));
定义就很简单,就是定义几个函数,不同的参数而已
如:
常用的是在构造函数里。
如:
注意:这里的 this(); 调用了另一个构造器
完整代码如下:
运行结果:
{以上内容是本人编写,如有不同意见,请留言}
override 是覆写父类中的已经存在的方法,在完父类方法提供的功能上,加入新的内容,或完成修改方法提供的功能。
如:
class ClassA{ public void draw(){ ........ System.out.println("ClassA.draw()"); } } class ClassB extends ClassA { //从 ClassA 继生一个 ClassB public void draw() { ....... System.out.println("ClassB.draw()"); super.draw(); // 关键字 super 表示父类 这里为调用父类的 draw() 方法 } } |
运行结果为:
ClassB.draw() ClassA.draw() |
注意:super 表示父类
一般override的比较多的有 equals()
Object 的定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
还有 finalize
protected void finalize() throws Throwable { }
overload 重载是在现在类的提供的参数上,加入新的参数功能。
最出名的就是 System.out.println() 了。
你可以用同样的函数,输出不同的数据类型
如: 字符串 System.out.println("This is a TEST");
日期对象 System.out.println(new Date());
整型 System.out.println(500);
布尔型 System.out.println(obj1.equals(obj2));
定义就很简单,就是定义几个函数,不同的参数而已
如:
class ClassA { public void show(int value) { .... } public void show(String str) { ....... } } |
常用的是在构造函数里。
如:
class MyClass{ public int value = 100; public MyClass(){ System.out.println("Create Class MyClass."); } public MyClass(int Value){ this(); //调用另一个构造器 System.out.println("Class MyClass(Value)"); value = Value; } ... } |
注意:这里的 this(); 调用了另一个构造器
完整代码如下:
01 02 class MyClass{ 03 public int value = 100; 04 05 public MyClass(){ 06 System.out.println("Create Class MyClass."); 07 } 08 09 public MyClass(int Value){ 10 this(); //调用另一个构造器 11 System.out.println("Class MyClass(Value)"); 12 value = Value; 13 } 14 15 public void draw(){ 16 System.out.println("MyClass draw()"); 17 } 18 19 public boolean equals(MyClass c) { 20 return (this.value == c.value); 21 super.equals( 22 } 23 } 24 25 class MyClassA extends MyClass { 26 public void draw() { 27 System.out.println("MyClassA draw()"); 28 super.draw(); 29 } 30 } 31 32 public class ClassTest { 33 public static void main(String[] args){ 34 MyClass class1 = new MyClass(); 35 MyClass class2 = new MyClass(120); 36 37 class1.value = 120; 38 //class2.value = 120; 39 40 System.out.println("class1 == class2 :" +(class1 == class2)); 41 System.out.println("class1.equals(class2):" + class1.equals(class2) ); 42 System.out.println("Test OK!"); 43 44 MyClassA class3 = new MyClassA(); 45 class3.draw(); 46 } 47 } 48 49 |
运行结果:
Create Class MyClass. Create Class MyClass. Class MyClass(Value) class1 == class2 :false class1.equals(class2):true Test OK! Create Class MyClass. MyClassA draw() MyClass draw() |
{以上内容是本人编写,如有不同意见,请留言}