美文网首页
Java中的多态

Java中的多态

作者: 夜希辰 | 来源:发表于2021-05-06 22:00 被阅读0次

学习笔记:多态
参考文章:Java多态的介绍

多态,同一个对象,在不同时刻表现出来的不同形态
多态实现前提:有继承/实现关系、有方法重写、有父类引用指向子类对象

1、多态中成员访问特点
  • 成员变量:编译看等号左边执行左边(不能使用子类特有的成员变量)
  • 成员方法:对象能编译看等号左边,执行看右边。(不能使用子类特有的方法。只能使用子类和父类都有的方法)
    为什么成员方法和成员变量执行不一样?因为成员方法有重写,成员变量没有重写
//父类
public class Animal {
    public int age = 40;
    public void eat(){
        System.out.println("动物吃东西");
    }
}
//子类
public class Cat extends Animal {
    public int age = 20;
    public int weight = 10;

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    public void playGame(){
        System.out.println("猫捉迷藏");
    }
}
//主接口类
public class AnimalDemo {
    public static void main(String[] args) {
        //有父类引用指向子类对象
        Animal a = new Cat();//向上转型

        System.out.println(a.age);//通过多态访问成员变量,访问的是父类的成员变量
//        System.out.println(a.weight);//报错,父类没有weight变量

        a.eat();
//        a.playGame();/报错,父类没有playGame方法
         Cat c = (Cat)a;//向下转型
        c.playGame();

        ((Cat) a).playGame();//(Cat) a向下转型
    }
}
2、多态中的转型
  • 向上转型:从子到父,父类引用指向子类对象
  • 向下转型:从父到底子,父类引用转向子类对象

相关文章

  • java多态之简述

    Java的第三大特性------>多态 一、什么是多态 多态根据其字面意思就是多种形态的意思,那么在Java中的多...

  • 【JAVA】Java中的多态

    0x01 多态 一个类对象有各种形态,比如狗是狗类,也是动物类,一个表示当前类,一个表示其父类 0x02 多态的特...

  • java中多态

    点个关注不迷路~~ 多态是java面向对象思想极为重要的一部分,在学到java多态时,感觉学的特别迷,遂参考了ja...

  • Java中多态

    一、多态详解 Java 多态目录:1.定义2.优点3.三个必要条件-继承、重写、父类引用指向子类对象4.虚方法4....

  • java中的多态

    多态对象的多中形态 1.引用的多态 1.父类的引用可以指向本类的对象2.父类的引用可以指向子类的对象 2.方法的多...

  • java中的多态

  • java中的多态

    多态的概述 某一个事物,在不同时刻表现出来的不同状态。 举例:猫可以是猫的类型。 猫 m=new 猫();同时猫也...

  • Java中的多态

    学习笔记:多态参考文章:Java多态的介绍[https://blog.csdn.net/newchitu/arti...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

网友评论

      本文标题:Java中的多态

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