首页 > 其他分享 >Day05-22 多态

Day05-22 多态

时间:2023-07-25 20:45:34浏览次数:35  
标签:22 子类 多态 Day05 Student new 父类 public

多态

  • 即同一方法可以根据发送对象的不同而采用多种不同的行为方式

  • 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(父类,有关系的类)

  • 多态存在的条件

    • 有继承关系

    • 子类重写父类方法

    • 父类引用指向子类对象

  • 注意:多态是方法的多态,属性没有多态性。

  • instanceof 类型转换~ 引用类型

public class Application {
   public static void main(String[] args) {
       //一个对象的实际类型是确定的
       //new Student();
       //new Person();

       //可以指向的引用类型就不确定了:父类的引用指向子类

       //Student 能调用的方法都是自己的或者继承父类的!
       Student s1 = new Student();
       //Person 父类型:可以指向子类,但是不能调用子类独有的方法
       Person s2 = new Student();
       Object s3 = new Student();

       //对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
      ((Student) s2).eat();//子类重写了父类的方法,执行子类的方法
       s1.eat();
  }
}
public class Person {
   public void run() {
       System.out.println("run");
  }
}
/*
多态注意事项:
1、多态是方法的多态,属性没有多态
2、父类和子类,有联系 类型转换异常!ClassCastException!
3、存在的条件:继承关系、方法需要重写,父类引用指向子类对象!father f1 = new son();

   1、static方法,属于类,不属于实例
   2、final 常量;
   3、private方法;
*/
public class Student extends Person {
   @Override
   public void run() {
       System.out.println("son");
  }

   public void eat(){
       System.out.println("eat");
  }
}
 

标签:22,子类,多态,Day05,Student,new,父类,public
From: https://www.cnblogs.com/Iwtr/p/17580968.html

相关文章

  • 基于32位Cortex®-M4内核MK26FN2M0VMI18、MK22FN256VMP12、MK22FN512VLL12 180MHz/120
    一、MK26FN2M0VMI18KinetisK2032位微控制器是一款低功耗MCU,通过智能片上集成节省了大量BOM。该MCU基于Arm®Cortex®-M4核心,提供完整和可选的高速USB2.0(OTG控制器),包括无晶器件功能选项。此器件具有2MB的闪存,256KB的SRAM和多达2个USB控制器。详细描述:ARM®Cortex®-M4Kine......
  • 洛谷 P9221 「TAOI-1」Pentiment 题解
    Description给定\(n\timesm\)的矩阵,从第\(1\)行任意格子出发,每次向下、左、有走一步,有\(q\)个障碍不能经过,求走到第\(n\)行任意格子的方案。对于所有数据,\(1\leqn,m\leq10^9\),\(1\leqq\leq10^5\)。link:https://www.luogu.com.cn/problem/P9221Solution算法一考......
  • 雄关漫道真如铁,而今迈步从头越 | 挥别2022,再战2023!
    挥别2022年这一年,虽面临诸多挑战,但我们充满干劲儿向下扎根,向上生长这一年,我们风云十载,厚积薄发站在2023年的开端让我们一起回顾博云2022年的这些成绩No.1 专精特新,示范引领2022年8月,根据工信部统一部署,江苏省工信厅公示了第四批国家级专精特新“小巨人”企业名单,凭借在云计算领......
  • ubuntu22.04部署mysql---主从
    1、首先部署mysql主服务:详见上一篇《ubuntu22.04部署mysql---单机》https://blog.51cto.com/u_14175560/6766135上述部署好后,主节点server_id:vim/etc/mysql/my.cnf##新增配置:[mysqld]server_id=1重启mysql:systemctlrestartmysql登录mysql,指定从节点IP,运行下述(注意修改......
  • 【专题】2022年中国企业数字化学习行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32263原文出处:拓端数据公众号多变,不确定性,复杂,模糊不清的新业务图景,加快了公司人才发展模式的数字化转变;疫情冲击离线运输与公司现金流量,消费者支出减少,机构表现受压,数字化学习突破;行业数字化水平不断提高,商业体系和学习体系之间的关联性不断加强,企......
  • 题解 P2229 【[HNOI2002]沙漠寻宝】
    postedon2021-06-0112:15:15|under题解|source这题一看就知道是个模拟。做模拟题的时候,一定要先确保你的程序能跑出正确的结果,再去想优化时间。这道题还是很简单的,让我们开始吧:读入我们把输入离线,拿string存起来。如果不离线,那loop就会很难处理,加大难度。intn;......
  • 解决VS 2022使用Git无法显示文件状态图标问题
     在安装git插件之后,用vs2022打开打开项目时,项目文件夹不显示状态图标,解决如下:新建txt文件,将一下语句粘贴进去,然后将文件后缀名修改为cmd格式运行即可,如果第一次运行该文件一闪而过,可以多点几次REGADDHKEY_LOCAL_MACHINE\SOFTWARE\TEC\Ocular.3\agent\config/vhookapi_dis......
  • visual studio 2022 安装net旧版本(net framework4.0和4.5)
    visualstudio2022安装net旧版本(netframework4.0和4.5)问题:VisualStudio2022安装程序中单个组件中没有.netframework4.0或者.netframework4.5的问题,NETSDK下载Download.NETSDKsforVisualStudio下载没有4.5和4.0的开发包 其他Net版本直接在下载适用于VisualS......
  • Windows Defender 防火墙 无法启用 错误代码0x80070422
    打开注册表(win+R打开运行框,输入regedt32回车),定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MpsSvc,start的数值数据修改为2,重启生效。 ......
  • C#中的重写与多态知识点整理(刘铁锰老师课堂笔记)
    在C#中,重写(Override)和多态(Polymorphism)是面向对象编程中的重要概念。通过重写和多态,我们可以更好地组织和管理代码,提高代码的可维护性和可扩展性。重写(Override)重写是指在派生类中重新实现基类中已经定义的方法。通过重写一个方法,我们可以为派生类中的该方法提供新的实现,同时让......