重写与重载区别----Java

多态:同一个方法有不同的行为

静态多态:重载的多态在编译的时候已经确定了,所以称之为静态多态。

静态多态: 实现方式,重载; 实现时机:编译时。

重载(overload)的定义:一个类里有2个或者2个以上的方法满足如下条件:

  1. 方法名相同
  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;
		}
	}
}

 

おすすめ

転載: blog.csdn.net/qq_35361859/article/details/104059235