override(4个一致1个不一致)
子类继承父类的方法的时候,
〇方法名一致
〇方法名后面的参数
类型一致
顺序一致
个数一致
〇方法里输出的内容不一致
举例 三个文件
①SuperClass.java
②SubClass.java
③Main.java
①SuperClass.java
----------------------------------------------------------------------------------------
package test02;
public class SuperClass {
protected int i1 = 1;
protected int i2 = 2;
public void calc() {
System.out.println("i1+i2 = " + (i1 + i2));
}
}
②SubClass.java
----------------------------------------------------------------------------------------
package test02;
class SubClass extends SuperClass {
@Override
public void calc() {
System.out.println("i1*i2 = " + (i1 * i2));
}
}
③Main.java
----------------------------------------------------------------------------------------
package test02;
public class Main {
public static void main(String[] args) {
SubClass sc = new SubClass();
sc.calc();
}
}
执行Main.java,输出 i1*i2 = 2
overload(1个一致3个不一致)
〇方法名一致
〇方法名后面的参数
类型,不一致。
或
顺序,不一致。
或
个数不一致
※方法的返回值类型无关
----------------------------------------------------------------------------------------
举例一
〇方法名一致
〇方法名后面的参数类型,不一致。
Main.java
----------------------------------------------------------------------------------------
public class Main {
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static String add(String x, String y) {
return x + y;
}
public static void main(String[] args) {
System.out.println(add(10, 20));
System.out.println(add(3.4, 6.6));
System.out.println(add("Hello", "World"));
}
}
----------------------------------------------------------------------------------------
举例二
〇方法名一致
〇方法名后面的参数个数,不一致。
Main.java
----------------------------------------------------------------------------------------
package test01;
public class Main {
public static int add(int x, int y) {
return x + y;
}
public static int add(int x, int y, int z) {
return x + y + z;
}
public static void main(String[] args) {
System.out.println("10+20=" + add(10, 20));
System.out.println("10+20+30=" + add(10, 20, 30));
}
}
本文到此结束