/*
多态概述
同一个对象,在不同时刻体现出来的不同状态
举例:
猫是猫,猫是动物
多态的前提:
A:要有继承关系
B:要有方法重写
C:要有父类引用指向子类对象
父类 f = new 子类 ();
多态中成员访问特点:
A:成员变量
编译看左边 ,运行看左边
B:构造方法
创建子类对象时候,访问父类的构造方法,对父类的数据进行初始化
C:成员方法
编译看左边 ,运行看右边
D: 静态方法:
编译看左边 ,运行看左边
静态和类相关,算不上重写,所以访问还是左边
静态和类相关,当类被编译时静态的方法也同时被编译
由于成员方法存在方法重写,所以它运行看右边
*/
//用代码体现一下多态
class Fu{
public int num = 10;
public void show(){
System.out.println("show Fu");
}
public static void function(){
System.out.println("function Fu");
}
}
class Zi extends Fu{
public int num = 1000;
public int num2 = 20;
public void show(){
System.out.println("show Zi");
}
public static void function(){
System.out.println("function Zi");
}
public void methon(){
System.out.println("methon Zi");
}
}
class Dome{
public static void mian(string[] args){
//要有父类引用指向子类对象
// 父类 f = new 子类 ();
Fu f = new Zi();
System.out.println(num);
//编译有问题,找不到符号,因为Fu类中无num2
//所以得个结论:编译看左边 ,运行看右边
//System.out.println(num2);
f.show();
//编译有问题,找不到符号,因为Fu类中无methon
//所以得个结论:编译看左边 ,运行看右边
//f.methon();
f.function();//输出为:function Fu
}
}
Java多态的概述和代码案例
最新推荐文章于 2023-12-11 19:26:00 发布