• Java面向对象三大特点之多态


    概念:

    多态是同一个行为具有多个不同表现形式或形态的能力。

    多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

    多态性是对象多种表现形式的体现,同一个事件发生在不同的对象上会产生不同的结果。

    现实中,比如我们按下 F1 键这个动作:

    • 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;
    • 如果当前在 Word 下弹出的就是 Word 帮助;
    • 在 Windows 下弹出的就是 Windows 帮助和支持。

    多态的优点

    • 1. 消除类型之间的耦合关系
    • 2. 可替换性
    • 3. 可扩充性
    • 4. 接口性
    • 5. 灵活性
    • 6. 简化性

    多态存在的三个必要条件

    • 继承
    • 重写
    • 父类引用指向子类对象

    比如:

    Parent p = new Child();

    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

    多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。

    以下是一个多态实例的演示,详细说明请看注释:

    public class Test {
    
        public class Deng {//父类Deng
            public void qiDong(){
                System.out.println("灯亮了");
            }
            public void tingZhi(){
                System.out.println("灯灭了");
            }
        }
        public class DengPao extends Deng {//子类DengPao继承父类Deng
            public void qiDong(){
                System.out.println("灯泡亮了");
            }
            public void tingZhi(){
                System.out.println("灯泡灭了");
            }
        }
        public class DengGuan extends Deng {//子类DengGuan继承父类Deng
            public void qiDong(){
                System.out.println("灯管亮了");
            }
            public void tingZhi(){
                System.out.println("灯管灭了");
            }
        }
    public class KaiGuan { public void Kai(Deng d){ d.qiDong();//调用Deng中的qi.Dong方法 } public void Guan(Deng d){ d.tingZhi();//调用Deng中的tingZhi方法 } } public static void main(String[] args) { KaiGuan kg=new KaiGuan(); DengPao dp=new DengPao(); DengGuan dg=new DengGuan(); kg.Kai(dp);//调用类KaiGuan中的Kai方法,该方法中参数值为dp kg.Guan(dp); kg.Kai(dg); kg.Guan(dg); } }

    执行以上程序,输出结果为:

    灯泡亮了
    灯泡灭了
    灯管亮了
    灯管灭了
  • 相关阅读:
    ubuntu12.04 死机 卡屏 画面冻结解决方案
    Install Firefox 20 in Ubuntu 13.04, Ubuntu 12.10, Ubuntu 12.04, Linux Mint 14 and Linux Mint 13 by PPA
    ListView1.SelectedItems.Clear()
    android studio 下载地址
    jquery.slider.js jquery幻灯片测试
    jquery.hovermenu.js
    jquery.tab.js选项卡效果
    适配 placeholder,jquery版
    jquery.autoscroll.js jquery自动滚动效果
    将 Google Earth 地图集成到自己的窗体上的 简单控件
  • 原文地址:https://www.cnblogs.com/jonsnow/p/6231893.html
Copyright © 2020-2023  润新知