欢迎使用CSDN-markdown编辑器

来源:互联网 发布:知敬畏守底线强党性 编辑:程序博客网 时间:2024/06/06 00:11

多态(掌握)
(1)同一个对象在不同时刻体现出来的不同状态。
(2)多态的前提:
A:有继承或者实现关系。
B:有方法重写。
C:有父类或者父接口引用指向子类对象。

    多态的分类:        a:具体类多态
class Fu {}                class Zi extends Fu {}                Fu f = new Zi();
        b:抽象类多态

abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();

            c:接口多态  interface Fu {}                class Zi implements Fu {}                           Fu f = new Zi();
(3)多态中的成员访问特点    A:成员变量        编译看左边,运行看左边    B:构造方法        子类的构造都会默认访问父类构造    C:成员方法        编译看左边,运行看右边    D:静态方法        编译看左边,运行看左边,静态和类算不上重写,看父类    为什么?        因为成员方法有重写。

“`
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");}

}

public class Test {

public static void main(String[] args) {    Fu f=new Zi();    System.out.println(f.num);    f.show();//  f.method();//上转型对象不能访问子类新增的方法    f.function();}

}
*“`
结果:
100
show Zi
function Fu*

(4)多态的好处:    A:提高代码的维护性(继承体现)    B:提高代码的扩展性(多态体现)(5)多态的弊端:    父不能使用子的特有功能。    现象:        子可以当作父使用,父不能当作子使用。(6)多态中的转型    A:向上转型        从子到父    B:向下转型        从父到子(7)孔子装爹的案例帮助大家理解多态(8)多态的练习    A:猫狗案例    B:老师和学生案例
0 0