多态:同一个方法有不同的行为
静态多态:重载的多态在编译的时候已经确定了,所以称之为静态多态。
静态多态: 实现方式,重载; 实现时机:编译时。
重载(overload)的定义:一个类里有2个或者2个以上的方法满足如下条件:
- 方法名相同
- 参数列表不同
对方法的访问修饰符和返回类型都没有要求
代码:
public class StateMoreState {
// 静态多态 重载(一个类里面有2个或者2个以上的方法满足 :① 方法名相同,②参数列表不同)
public void m1() {
}
public void m1(int i) {
}
void m1(String i, int j) {
}
void m1(int i, String j) {
}
int m1(int i, int j) {
return i + j;
}
}
动态 重载
package secode.lyp.base;
/**
*
*
* describe: 动态基础一: 重写 Override 父类和子类存在2个方法满足如下条件: 1. 方法名相同 2. 参数列表相同
* 3.子类方法的返回类型<= 父类 3.1 若返回类型是基本类型(基本数据类型),要求相同 3.2
* 若返回类型是引用类型,子类方法的返回类型可以与父类相同,也可以返回父类的返回类型的子类 4.子类方法的可见性 >= 父类 5.子类方法抛出的异常<= 父类
* 2020年 01月21日 -星期二 11:01:17
*
* @author Lyp
*/
public class DynamicMoreState {
class A {
}
class A1 extends A {
}
class Based {
int m1(int j) {
System.out.println("这是父类中 的方法");
return 1;
}
A m2() {
System.out.println("这是父类中的 方法");
return null;
}
}
class Child extends Based {
public int m1 (int a) { // 父类方法返回类型是基本类型,子类方法的返回类型必须与父类相同
System.out.println("这是子类中 的方法");
return 2;
}
A1 m2 () { // 父类方法返回类型是引用类型,子类方方法的返回类型可以与父类相同,也可以返回父类的返回类型的子类
System.out.println("这个是子类中 方法");
return null;
}
}
}