欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多态的详解

程序员文章站 2022-03-15 19:32:49
...

多态的特点

生活中的多态:

  • cut
  • 理发师: 理发
  • 医生: 动手术
  • 导演: 暂停

多态的必要条件:

  • 1.必须存在继承关系
  • 2.必须存在方法重写
  • 3.父类引用指向子类对象

staticfinalprivate\color{red}{注意:static final private方法不能被重写 }
final\color{red}{final表示最终的意思,它修饰的类是不能被继承的;}
finalMath\color{red}{final修饰的方法能被继承(Math类里就有),但是不能够被重写}

  • 多态的概述:
  • 生活上: 同一个动作在不同的环境下体现出来的不同的结果
  • 代码中: 父类引用指向子类对象

多态访问成员的特点

  •  成员变量: 编译时期看左边类型,运行时期看左边类型
    
  • 成员方法: 编译时期看左边类型,运行时期看右边类型
  • 构造方法: 帮助子类初始化父类继承过来的成员
  • 静态方法: 编译时期看左边类型,运行时期看左边类型,说明static不能重写方法
    

举例如下:

public class PolymorphismDemo02 {
	public static void main(String[] args) {
		Zi zi = new Zi();
		System.out.println(zi.num); // 30
		
		Fu fu = new Zi();
		System.out.println(fu.num); // 20   ------------------------第一条
		
		fu.method(); // Zi.method()----------------------------------第二条

		fu.staticMethod();//-------------------------------------------第四条
	}
}

class Fu {
	int num = 20;
	
	public void method() {
		System.out.println("Fu.method()");
	}
	
	public static void staticMethod() {
		System.out.println("Fu.staticMethod()");
	}
}

class Zi extends Fu {
	int num = 30;
	
	@Override
	public void method() {
		System.out.println("Zi.method()");
	}
	
	public static void staticMethod() {
		System.out.println("Zi.staticMethod()");
	}
}
相关标签: 多态