一.多态
1.含义
同一个对象(事物),在不同时刻体现出来的不同状态
2.前提
有继承或实现关系
有方法的重写,其实没有也是可以的,但是如果没有这个就没有意义
有父类或者父接口引用指向之类对象
3.分类
具体类多态(几乎没有)
class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
抽象类多态(常用)
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
接口多态(最常用)
interface Fu {}
class Zi implements Fu {}
Fu f = new Zi();
4.成员访问特点
成员变量
编译看左,运行看左
构造方法
创建子类对象的时候,访问父类构造方法,完成父类数据的初始化
成员方法
编译看左,运行看右(由于成员方法存在方法重写)
继承的时候:
子类中有和父类中一样的方法,叫重写。
子类中没有父亲中出现过的方法,方法就被继承过来了。
代码示例
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 num = 1000;
public int num2 = 200;
public void show() {
System.out.println("show Zi");
}
public void method() {
System.out.println("method zi");
}
public static void function() {
System.out.println("function Zi");
}
}
class DuoTaiDemo {
public static void main(String[] args) {
//要有父类引用指向子类对象。
//父 f = new 子();
Fu f = new Zi();
System.out.println(f.num);
//找不到符号
//System.out.println(f.num2)