Java 中多态的概念以及前提条件
多态的概念 * 一个事物在不同时刻的体现(堆内存中对象形式) * 多态的前提条件: * 1)必须有继承关系(继承的好处第三点作为多态的前提条件) * 如果没有继承谈不上多态 * 2)方法重写,子类继承父类,将父类的功能覆盖掉,使子类最具体的功能 * 3)父类引用指向子类对象 * 父类名 对象名=new 子类名();(向上转型) * 多态的成员变量: * 编译看左边,运行看左边 * (等号左边编译通过,说明Fu类存在这个变量;运行看左边,访问的是Fu类的变量) * 成员方法: * 编译看左,运行看右 * (等号左边编译通过,说明Fu类存在这个方法,运行看右,子类出现和父类一模一样的方法声明:方法重写) * 静态的成员方法: * 编译看左,运行看左! * (静态的算不上方法重写,跟类有直接关系,随着类的加载而加载) * 构造方法:存在继承关系(还是分层初始化)先让父类初始化,然后是子类初始化 * */
//定义一个父类
class Fu{
public int num=100;
public void show() {
System.out.println("show Fu");
}
public static void function() {
System.out.println("function Fu");
}
}
//子类
class Zi extends Fu{
public int num2=200;
public int num=50;
public void show() {
System.out.println("show Zi");
}
public static void function() {
System.out.println("function Zi");
}
}
//测试类
public class DouTaiDemo {
public static void main(String[] args) {
//创建对象:多态的形式
//父类引用指向子类
Fu f=new Zi();
System.out.println(f.num);
f.show();
f.function();
}
}
