多态案例
Posted 凯玲之恋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多态案例相关的知识,希望对你有一定的参考价值。
多态案例
- 例一
- . class Test1Demo {
- . public static void main(String[] args) {
- . Fu f = new Zi();
- . //f.method(); //编译看左边,运行看右边,左边没有method方法,报错,
- . f.show();//编译看左边,运行看右边,父类有show,编译没问题,输出Zishow,如果Zi类没有show方法,则运行时发现子类没有去重写,则直接调用的是父类show输出FU show,子类把fu类show方法继承下来了
- . }
- . }
- . class Fu {
- public void show() {
- System.out.println("fu show");
- }
- }
- . class Zi extends Fu {
- . public void show() {
- . System.out.println("zi show");
- . }
- .
- . public void method() {
- . System.out.println("zi method");
- . }
- . }
- .
例2:
- . class A {
- . public void show() {
- . show2(); // 调用了show2
- . }
- . public void show2() {
- . System.out.println("我");
- . }
- . }
- . class B extends A { //子类继承了A
- . public void show2() {
- . System.out.println("爱");
- . }
- . }
- . class C extends B {
- . public void show() {
- . super.show();
- . }
- . public void show2() {
- . System.out.println("你");
- . }
- . }
- . public class Test2DuoTai {
- . public static void main(String[] args) {
- . A a = new B();//编译看做左边,b中没有show,但是继承了A类的show方法.
- . a.show();//爱
- . //父类show方法调用show2,子类中有show2,则show2是子类的show2.就相当于把这个方法写到B类中看
- . B b = new C();//编译看做左边,b中没有show,但是继承了A类的show方法.
- .. b.show();//你
- //运行看的是右边,子类show,super.show(),调用父类show方法,调用show2,调用子类show2
- . }
- . }
以上是关于多态案例的主要内容,如果未能解决你的问题,请参考以下文章