【Java】多态中调用成员的特点

news2024/12/24 9:18:58

示例代码

public class Test {
    public static void main(String[] args) {
        //创建对象(多态方式)
        //父类 f = new 子类();
        Animal a = new Dog();
        //调用成员变量:编译看左边,运行也看左边
        //编译看左边:javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。
        //运行也看左边:java运行代码的时候,实际获取的就是左边父类中成员变量的值
        System.out.println(a.name);//动物

        //调用成员方法:编译看左边,运行看右边
        //编译看左边:javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。
        //运行看右边:java运行代码的时候,实际上运行的是子类中的方法。
        a.show();///Dog --- show方法
    }
}


class Animal{
    String name = "动物";

   public void show(){
        System.out.println("Animal --- show方法");
    }
}

class Dog extends Animal{
    String name = "狗";

    @Override
    public void show() {
        System.out.println("Dog --- show方法");
    }

}

class Cat extends Animal{
    String name = "猫";

   @Override
    public void show() {
        System.out.println("Cat --- show方法");
    }
}

运行结果 

调用成员变量:编译看左边,运行也看左边

编译看左边:javac编译代码的时候,会看左边的父类中有没有这个变量,如果有,编译成功,如果没有编译失败。 

运行也看左边:java运行代码的时候,实际获取的就是左边父类中成员变量的值

如果注释掉Animal类中的变量name

左边的父类中没有这个变量,编译失败。  

调用成员方法:编译看左边,运行看右边

编译看左边:javac编译代码的时候,会看左边的父类中有没有这个方法,如果有,编译成功,如果没有编译失败。

运行看右边:java运行代码的时候,实际上运行的是子类中的方法。

理解

Animal a = new Dog();
现在用a去调用变量和方法的呀?是的
而a是Animal类型的,所以默认都会从Animal这个类中去找

成员变量:在子类的对象中,会把父类的成员变量也继承下的。父:name 子:name
成员方法:如果子类对方法进行了重写,那么在虚方法表中是会把父类的方法进行覆盖的。

来自

面向对象进阶-10-多态中调用成员的特点_哔哩哔哩_bilibili面向对象进阶-10-多态中调用成员的特点是黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)的第130集视频,该合集共计200集,视频收藏或关注UP主,及时了解更多相关视频内容。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17F411T7Ao?p=130&vd_source=a6159bc9b4989839c4faea97a2a136de

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1123718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python深度学习进阶与应用丨注意力(Attention)机制、Transformer模型、生成式模型、目标检测算法、图神经网络、强化学习详解等

目录 第一章 注意力(Attention)机制详解 第二章 Transformer模型详解 第三章 生成式模型详解 第四章 目标检测算法详解 第五章 图神经网络详解 第六章 强化学习详解 第七章 深度学习模型可解释性与可视化方法详解 更多应用 近年来,伴…

【Java】JDK 21中的虚拟线程以及其他新特性

目录 一、字符串模板(String Templates) 二、序列化集合(Sequenced Collections) 三、分代ZGC(Generational ZGC) 四、记录模式(Record Patterns) 五、Fibers(纤程&…

实战SRC

附言:从补天的公益src公司中选中了幸运儿。 1. 通过hunter鹰图平台搜索公司的相关资产,发现其采用了华途应用安全网关。 2.访问相关地址,尝试使用弱口令登录,发现直接利用admin/admin就登录了,可以看到后台的相关日志…

汉语言语的声学特点是什么

汉语言语的声学特点是什兰明 医学硕士,听力学博士,听觉健康门诊主任 虽然互联网已经将英语作为最常用的(第二)语言的地位,但中文(普通话)仍然是最常用的母语。2010年,以中文为…

新成果展示:AlGaN/GaN基紫外光电晶体管的设计与制备

紫外光电探测器被广泛应用于导弹预警、火灾探测、非可见光通信、环境监测等民事和军事领域,这些应用场景的实现需要器件具有高信噪比和高灵敏度。因此,光电探测器需要具备响应度高、响应速度快和暗电流低的特性。近期,天津赛米卡尔科技有限公…

C++ 读取数量不定的输入数据

在C中&#xff0c;有时我们会遇到&#xff0c;在事先没有知道&#xff0c;要对多少个数进行求和的情况下&#xff0c;这就需要不断的读取数据直至没有新的输入为止&#xff1a; demo&#xff1a; #include <iostream> using namespace std;int main() {int sum 0;in…

如何打造小红书产品差异化,打造产品优势?

其实在当今的时代&#xff0c;我们实质上已经进入到了一个产能过剩的时代&#xff0c;这意味着大量的同质化产品出现在市场上&#xff0c;选择更多了但是选择也更少了。今天为大家分享下如何打造小红书产品差异化&#xff0c;打造产品优势&#xff1f; 下面是一些产品差异化策略…

Redis数据结构完全解析:底层实现细节揭秘

文章目录 &#x1f34a; 简单字符串&#x1f389; 问题1&#xff1a;SDS结构体的三个属性分别表示什么意思&#xff1f;&#x1f389; 问题2&#xff1a;SDS字符串的内存分配方式是怎么样的&#xff1f;&#x1f389; 问题3&#xff1a;SDS字符串的拼接操作是怎么样的&#xff…

Pyside6 QFile

Pyside6 QFile QFile使用QFile常用函数文件编辑类函数判断文件是否存在重命名文件删除文件函数复制文件 文件内容操作类函数文件打开函数文件关闭函数文件读取函数read函数使用readLine函数使用readAll函数使用 文件写入函数追加方式写文件重写方式写文件 程序界面程序主程序 P…

数据结构和算法——图

图 有向图 带权图 邻接矩阵 邻接表相较于邻接矩阵&#xff0c;减少了存储空间&#xff1b; 邻接表 参考视频&#xff1a;【尚硅谷】数据结构与算法&#xff08;Java数据结构与算法&#xff09;_哔哩哔哩_bilibili

高精度数字压力表丨铭控传感多款数字压力表在多场景中的应用

时代日新月异、变化万千&#xff0c;压力表应用需求始终在不断变化&#xff0c;但铭控传感对压力测量的应用一如既往的了如指掌。铭控传感总是能够为您提供最合适符合您要求的成本和功能都极佳产品解决方案&#xff0c;通过您的需求定制MEOKON产品&#xff0c;铭控传感始终为用…

【EP2C35F672C8 EDA试验箱下载】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、试验箱如何下载&#xff1f;1. 编译工程没问题后&#xff0c;配置引脚2.配置完引脚后&#xff0c;记得重新编译3.配置下载4.配置下载器&#xff0c;需要装驱…

如何使用Python进行自动化测试

目录 一、选择适合的测试框架 二、编写测试用例 三、运行和分析测试结果 四、重构测试用例 五、注意事项 总结 随着软件行业的快速发展&#xff0c;自动化测试已成为软件开发过程中不可或缺的一部分。使用Python进行自动化测试可以帮助我们快速、高效地测试应用程序&…

Explainable-ZSL

模型 体会 作者的实验做得很充足&#xff0c;但未提供可直接运行的代码

可变参数模板 - c++11

文章目录&#xff1a; 可变参数模板的认识参数包的展开递归函数方式展开参数包逗号表达式展开参数包 STL容器中的empalce相关接口函数 可变参数模板的认识 c11 引入了可变参数模板&#xff08;variadic templates&#xff09;的特性&#xff0c;使得编写支持任意数量参数的模板…

交易想简化分析并少失误,波浪原则anzo capital认为必不可少

要想在交易中简化分析并少失误&#xff0c;不管是交易新手还是交易高手&#xff0c;anzo capital认为其实很容易&#xff0c;只要了解艾略特波浪原则。 艾略特波浪原则&#xff0c;每一个趋势都由特定的基本元素(波浪)组成&#xff0c;这些元素具有重复的趋势。这些波浪可以根…

企业或人力资源公司可利用直播将职位以视频直播的方式展现

抖音直播招聘报白是一种通过直播方式展示职位信息并与求职者互动的招聘方式。抖音的短视频流量能够让岗位信息覆盖更广泛的人群&#xff0c;增加招聘信息的曝光度。通过抖音的短视频流量红利和精准推送&#xff0c;能够提高岗位信息的曝光度和求职者的留存率。如果你想做招聘报…

Windows系统安装node-red

Quick Start 1. Install Node.js 第一步下载node.js,超链接在后面 Download the latest LTS version of Node.js from the official Node.js home page. It will offer you the best version for your system. Run the downloaded MSI file. Installing Node.js requires l…

TCP的三次握手、四次挥手!就像打电话一样简单!

目录 学前必会 三次握手详解 和打电话一样 为什么必须要三次&#xff1f; 四次挥手详解 和挂电话一样 为什么要四次挥手&#xff1f; 第四次为何要等待 2*MSL&#xff1f; 相关面试题&#xff1a; 说一下三次握手、四次挥手的过程三次握手四次挥手的目的是什么&#x…

明基护眼台灯怎么样?明基、书客、欧普护眼台灯对比测评

不得不说&#xff0c;如今我国儿童青少年总体近视率非常高&#xff0c;甚至超过了50%&#xff01;其中6岁儿童为14.3%&#xff0c;小学生为35.6%&#xff0c;初中生为71.1%&#xff0c;高中生为80.5%&#xff0c;而造成如此高的近视率的原因主要是不良的学习、生活用眼习惯&…