多态性

作者: 冯宏志 | 来源:发表于2020-11-30 22:53 被阅读0次
  • 理解多态性:可以理解为一个事物的多种形态
  1. 何为多态性
    对象的多态性:父类的引用指向子类的对象(以下代码Person是Man和Women的父类)
    Person p1 = new Man();
    Person p2 = new Women();

  2. 多态的使用,虚拟方法调用
    有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法
    总结:编译,看左边;运行,看右边

  3. 多态性的使用前提
    ①:类的继承关系
    ②:方法的重写

多态性使用举例:
package com.atguigu.java3;

public class Animal {
    public void eat() {
        System.out.println("动物:吃");
    }
    public void shout() {
        System.out.println("动物:叫");
    }
}

class Dog extends Animal{
    public void eat() {
        System.out.println("狗吃狗粮");
    }
    public void shout() {
        System.out.println("汪汪汪");
    }
}

class Cat extends Animal{
    public void eat() {
        System.out.println("猫吃猫粮");
    }
    public void shout() {
        System.out.println("喵喵喵");
    }
}

class AnimalTest{
    public static void main(String[] args) {
        AnimalTest test = new AnimalTest();
    /*******举例1*************/
        test.func(new Dog());
        System.out.println("********");
        test.func(new Cat());
        
    }
    
    public void func(Animal animal) {
        animal.eat();
        animal.shout(); 
    }
}
/*******举例2*************/
class Order{
    public void method(Object obj) {
        
    }
}

/*******举例3*************/
class Driver{
    public void doData(Connection conn) {//conn = new MySQLConnection(); 或者  conn = new OracleConnection();
                                        //跟不同类型的数据库建立连接
        //规范的步骤去操作数据
        conn.method1(); 
        conn.method2();
        conn.method3();
    }
}
  1. 对象的多态性,只适用于方法,不适用于属性
方法的重载和重写

对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”
对于多态,只有等到方法调用的那一刻,解释运行器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”

相关文章

  • 详解Java多态

    详解Java多态 多态定义 多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态...

  • C#魔帅-lesson_03-多态性

    多态性 多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。多态性可以是静态的或...

  • JAVA面向对象学习(多态性)

    多态性的理解和应用 1.1. 多态性的理解 多态性:在Java中,多态性是它的一大特性,可以理解成为是事物的多种形...

  • 多态

    面向对象特征之三:多态性 1、理解多态性:一个事物的多种形态 2、什么是多态性?对象的多态性:父类的引用指向子类的...

  • 第五章多态性

    第5章 多态性 一、编译时的多态性和运行时的多态性 多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的...

  • 明明白白——虚函数,虚指针,虚表,虚继承

    多态性 多态性指相同对象收到不同消息或不同对象收到相同消息时产生不同的实现动作。C++支持两种多态性:编译时多态性...

  • Java面向对象-多态性

    一、多态性 多态性的体现: 对象的多态性: 向上转型:程序会自动完成父类 父类对象 = 子类实例 向下转型:强...

  • 2020-02-20 Java 面向对象的多态性

    1.多态性的体现: 方法的重载和重写 对象的多态性 2.对象的多态性: 向上转型:程序会自动完成。...

  • 第十八课:多态性

    特点 对象的多态性: 分家导致的财产纠纷 方法 的多态性:双重事件

  • 面向对象-多态性

    /* 面向对象的特征三:多态性 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态。 1)方法的重载与...

网友评论

      本文标题:多态性

      本文链接:https://www.haomeiwen.com/subject/ydihyktx.html