【第六课】面向对象编程---多态的基础

    xiaoxiao2021-03-25  27

    /********************************************* * Time:2016年11月16日 21:27:11 * Purpose:多态的基础_1 * Author:ZJY * Summary:子类可以当作父类来看待,但父类不能当 作子类看待; * KnowledgePoint: 1.java中的继承不是现实中的继承,实际上java中 的继承反应的是一般到特殊的关系 2.父类代表一般,如:人;子类代表特殊,如:男人; 所以子类可以被当作父类来看待,因为男人一定 都是个人;但父类不能被当作子类来看待,因为 人不一定都是男人; 3.在程序中的理解:因为子类继承父类的属性和方法, 当把子类当作父类来看待时,因为子类包含了父类 的所有方法和属性,所以并没有冲突;而当把父类 当作子类来看待时,子类的特有的属性和方法父类 并没有,则与实际冲突,所以父类不能被当作子类 来看待。 *********************************************/ class A { public void f() { System.out.printf("AAAA\n"); } } class B extends A { public void f() { System.out.printf("BBBB\n"); } } public class TestPoly_1 { public static void main(String[] args) { A aa1 = new A(); B bb1 = new B(); aa1.f(); bb1.f(); aa1 = bb1; //把bb1当作aa1来看待 子类可以被当作父类看待 //bb1 = aa1; // error //把aa1当作bb1来看待 父类不能被当作子类看待 aa1.f(); } } /********************************************* * Time:2016年11月16日 22:29:54 * Purpose:多态的基础_2 * Author:ZJY * Summary:多态:通过将子类的引用发送给父类的引用 实现调用父类的方法间接调用了子类的方法。 * KnowledgePoint: 1.多态的作用: 实现同一个方法在不同的地方处理的 内容不同;(实际上首先在子类中对从父类继承过来 的方法重写该方法,与之与父类中该方法的操作不 一样。然后将子类的引用发送给父类,当在发送之 前父类对应的引用调用的是父类中的该方法,但在 发送后,调用的则是子类中的方法。现实了同一个 方法在不同地方实现不同的操作的目的。) *********************************************/ class A { public void f() { System.out.printf("AAAA\n"); } } class B extends A { public void f() { System.out.printf("BBBB\n"); } } public class TestPoly_2 { public static void main(String[] args) { A aa1 = new A(); B bb1 = new B(); aa1.f(); //这个方法与下面的同名方法执行不同的处理 bb1.f(); /*aa1:A对象的引用,bb1:B对象的引用 */ aa1 = bb1; aa1.f(); } }

    转载请注明原文地址: https://ju.6miu.com/read-50426.html

    最新回复(0)