java多态的向上转型的概念及实例分析

作者:小妮浅浅 时间:2023-06-12 08:30:35 

1、说明

向上转型就是把一个子类引用给一个父类引用,也就是父类引用 引用了子类的对象,即父类 父类对象 = 子类实例。

此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,而不是父类的方法。但是调用的属性还是父类的属性。

2、实例


class Animal {
   public String name;
   public void eat() {
       System.out.println(this.name + " 正在吃");
   }
}
class Cat extends Animal {

}
public class Test extends TestDemo {

public static void main(String[] args) {
       //父类引用 引用了 子类引用所引用的对象
       Cat cat = new Cat();
       Animal animal = cat;//向上转型
   }
}

知识点扩充:

Java允许把子类对象赋值给父类的引用变量,不用做任何强制转换,系统自动完成。向上转型来自于自下而上的继承关系,子类继承父类,子类是一种特殊的父类,所以向上转型的操作其实是情理之中的。

下面依照简单的代码,来试着理解向上转型的概念与好处。


package com.my.pac14;

/**
* @auther Summerday
*/
public class DynamicBinding {
   //Object是所有类的超类,根据向上转型,该方法可以接受任何类型的对象
   public static void test(Object x) {
       System.out.println(x.toString());
   }

public static void main(String[] args) {
       test(new PrimaryStudent());//Student
       test(new Student());//Student
       test(new Person());//Person
       test(new Object());//java.lang.Object@1b6d3586
   }
}

class Person extends Object {
   @Override
   public String toString() {
       return "Person";
   }
}

class Student extends Person {
   @Override
   public String toString() {
       return "Student";
   }
}

class PrimaryStudent extends Student {
}

来源:https://www.py.cn/java/jichu/30578.html

标签:java,多态,向上转型
0
投稿

猜你喜欢

  • Springboot使用@RefreshScope注解实现配置文件的动态加载

    2022-06-11 10:06:00
  • C#实现农历日历的方法

    2022-08-17 21:27:29
  • Java使用synchronized修饰方法来同步线程的实例演示

    2022-11-29 18:33:29
  • C++之try catch 异常处理入门实例

    2021-09-13 04:42:07
  • java StringBuilder类的详解及简单实例

    2022-04-15 01:24:44
  • Android中监听未接来电的2种方法

    2023-11-02 10:44:48
  • Android Rreact Native 常见错误总结

    2021-07-11 16:39:59
  • Android获取手机电池电量用法实例

    2021-08-05 23:14:34
  • Android 刘海屏适配总结(推荐)

    2022-03-23 23:26:55
  • C语言详细分析宏定义与预处理命令的应用

    2021-10-06 00:39:24
  • Java中ArrayList在foreach里remove的问题详析

    2022-08-04 02:30:40
  • Java 数据结构与算法系列精讲之贪心算法

    2023-09-12 17:56:13
  • 解析后台进程对Android性能影响的详解

    2021-09-05 05:42:09
  • Android Vitamio和ExoPlayer两种播放器优劣分析

    2023-02-25 13:21:51
  • kotlin实现五子棋单机游戏

    2022-10-16 03:20:09
  • IDEA报错:无效的源发行版解决方案

    2022-06-05 08:38:58
  • 详解android 人脸检测你一定会遇到的坑

    2023-03-10 15:24:34
  • C#中split用法实例总结

    2023-11-27 11:31:16
  • Android编程实现加载等待ProgressDialog的方法

    2022-09-11 21:12:11
  • Spring和Hibernate的整合操作示例

    2023-08-08 11:57:52
  • asp之家 软件编程 m.aspxhome.com