zoukankan      html  css  js  c++  java
  • 黑马程序员面向对象08天2 (多态)

    package java08;
    
    /*
     * 多态:可以理解为事物存在的多种体现形态。
     *人:男人,女人
     *动物:猫,狗。
     *猫 x = new 猫();
     *动物 x = new 猫();
     *1,多态的体现
     *    父类的引用指向了自己的子类对象。
     *    父类的引用也可以接收自己的子类对象。
     *2,多态的前提
     *    必须是类与类之间有关系。要么继承,要么实现。
     *    通常还有一个前提:存在覆盖。
     *3,多态的好处
     *    多态的出现大大的提高程序的扩展性。
     *4,多态的弊端:
     *    提高了扩展性,但是只能使用父类的引用访问父类中的成员。
     *5,多态的应用
    在多态中成员函数的特点:
    在编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有,编译通过,如果没有编译失败。
    在运行时期:参阅对象所属的类中是否有调用的方法。
    简单总结就是:成员函数在多态调用时,编译看左边,运行看右边。


    在多态中,成员变量的特点:
    无论编译和运行,都参考左边(引用型变量所属的类)。


    在多态中,静态成员函数的特点:
    无论编译和运行,都参考做左边。
    */ abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println("吃鱼"); } public void catchMouse() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨头"); } public void kanJia() { System.out.println("看家"); } } class Pig extends Animal { public void eat() { System.out.println("饲料"); } public void gongDi() { System.out.println("拱地"); } } public class DuoTaiDemo { public static void main(String[] args) { function(new Cat()); function(new Dog()); function(new Pig()); } public static void function(Animal a) { a.eat(); } }
  • 相关阅读:
    通过Maven简单搭建SSM框架
    javaWeb常用面试题
    到底什么是对象,什么是对象的引用?对象和对象的引用有那些区别?
    第二章 python中重要的数据结构(下)
    第一章 python中重要的数据结构(上)
    springboot 集成完整的swagger2
    JAVA -> 数据加密和解密 留存
    mac rar文件解压缩
    java 图片合成文字或者awt包下的对话框引入自定义字体库
    java中list或数组中随机子集工具类
  • 原文地址:https://www.cnblogs.com/guwenren/p/2986506.html
Copyright © 2011-2022 走看看