父类引用指向子类对象,多态

父类引用指向子类对象,多态多态 父类引用指向子类对象 即创建一个子类对象让父类进行接收 生成的对象可以调用父类的方法 但是当子类中存在与父类相同的方法时发生覆盖现象 如果想要调用子类特有的方法时需要向下转型 即将父类强制转化为子类然后对子类方法进行调用 classAnimal privateStrin privateStrin publicAnimal

多态:
父类引用指向子类对象,即创建一个子类对象让父类进行接收,生成的对象可以调用父类的方法,但是当子类中存在与父类相同的方法时发生覆盖现象;如果想要调用子类特有的方法时需要向下转型,即将父类强制转化为子类然后对子类方法进行调用。

class Animal{ private String name; private String sounds; public Animal(){ this.name="animal"; this.sounds="+++++"; } public Animal(String name,String sounds){ this.name=name; this.sounds=sounds; } public String getName() { return name; } public String getSounds() { return sounds; } public void Sound(){ System.out.println("Animal Sound"+","+name+","+sounds); } } class Dog extends Animal{ public Dog(){ super("xiaogou","wangwang"); } public void Kanjia(){ System.out.println("Dog Kanjia"+","+getName()+"," +getSounds()); } } class Cat extends Animal{ public Cat(){ super("xiaomao","miaomiao"); } public void Sound(){ System.out.println("Cat Sound"+","+getName()+"," +getSounds()); } } public class MainDemo { public static void main(String[] args) { // TODO Auto-generated method stub Animal a=new Animal(); System.out.println("Animal:"); a.Sound(); Animal d=new Dog(); System.out.println("Dog:"); d.Sound(); Dog dd=(Dog)d; dd.Kanjia(); Animal c=new Cat(); System.out.println("Cat:"); c.Sound(); } }
Animal: Animal Sound,animal,+++++ Dog: Animal Sound,xiaogou,wangwang Dog Kanjia,xiaogou,wangwang Cat: Cat Sound,xiaomao,miaomiao
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215216.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午2:25
下一篇 2026年3月18日 下午2:25


相关推荐

  • navicat 15版激活码【在线注册码/序列号/破解码】

    navicat 15版激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    103
  • murmurhash算法_shell dash使用数组

    murmurhash算法_shell dash使用数组MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。[1][2][3] 由AustinAppleby在2008年发明,[4][5] 并出现了多个变种,[6] 都已经发布到了公有领域(publicdomain)。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好

    2022年10月19日
    7
  • 比较spring cloud和dubbo,各自的优缺点是什么[通俗易懂]

    dubbo由于是二进制的传输,占用带宽会更少springCloud是http协议传输,带宽会比较多,同时使用http协议一般会使用JSON报文,消耗会更大dubbo的开发难度较大,原因是dubbo的jar包依赖问题很多大型工程无法解决springcloud的接口协议约定比较自由且松散,需要有强有力的行政措施来限制接口无序升级dubbo的注册中心可以选择zk,redis等多种,sp…

    2022年4月17日
    86
  • structs学习

    structs学习一接收数据用 action 接收数据使用域模型接受数据 创建一个实体对象 使用 modeldriver 将实体对象创建放到 model 里面 二简单数据验证有一个栈 addfields 三访问 web 数据 1 Map 类型 requestsessi Map 类型的依赖注入 主要 3 真实类型 httpServletr httpsession s

    2026年3月19日
    2
  • linux异步io底层原理,异步IO简析

    linux异步io底层原理,异步IO简析什么是异步 IO UNIX 网络编程卷 1 中的 IO 多路复章节总结了几种典型 IO 模型 包括 阻塞 IO 非阻塞 IOIO 复用信号驱动式 IO 异步 IO 这些 IO 模型在本质上都是围绕着同步 异步 阻塞 非阻塞这几个特点在做一些不同的选择 IO 的过程是应用程序从某个设备读取数据 或者往设备写入数据 操作系统把这些设备抽象为描述符 fd 应用程序则在这些 fd 上面进行读写操作 由于 fd 的底层是设备 这里就会有个问题 设备还没

    2025年12月12日
    5
  • Codeforces Round #274 (Div. 2) E. Riding in a Lift(DP)

    Codeforces Round #274 (Div. 2) E. Riding in a Lift(DP)

    2022年1月31日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号