iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java多态成员访问的特点是什么?
  • 656
分享到

Java多态成员访问的特点是什么?

2024-04-02 19:04:59 656人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

Java多态成员访问的特点 多态概要 多态是面向对象编程的三个特性之一,这里不展开做过多介绍,有机会专门写一个关于继承,封装,多态三大特性的文章. 我之前在力扣学习模块中整理过一部

Java多态成员访问的特点

多态概要

多态是面向对象编程的三个特性之一,这里不展开做过多介绍,有机会专门写一个关于继承,封装,多态三大特性的文章.
我之前在力扣学习模块中整理过一部分关于这方面的内容,可以先简单了解一下.
力扣知补-面向对象-继承

Java多态使用最多的场景在于父类引用指向子类对象.

多态的前提:

  • 存在继承关系(Son继承Father)
  • 存在方法重写(Son重写Fahter中的Walk方法)
  • 父类引用指向子类对象(Father father = new Son(true);)

Java多态情景下成员访问特点

多态情景下主要涉及三部分的访问规则,分别是对成员变量,成员方法和静态方法的访问.
这里只拷贝多态测试类的代码,同时简单介绍一下Father类和Son类的情况.
Father类中有一个boolean canRun变量固定为False,子类中的canRun成员变量由构造方法传入.


walk(boolean canRun):如果canRun是True则输出Father/Son可以跑,否则输出Father/Son只能走.

public class Test {
    public static void main(String[] args) {
        Father father = new Son(true);
        System.out.println(father.isCanRun());
        father.walk(father.isCanRun());
        father.run();
    }
}

成员变量访问规则

Father father = new Son(true);
成员变量访问口诀是编父运父或者编左运左,进一步简化成为看父类.
解释:就是在编译阶段只要父类能够通过编译,无论右侧的类怎么定义都不会报错,在执行过程中的执行结果也是按照父类中变量来决定运行的结果.
虽然我们给Son中传入的参数是true,但是对于成员father中的变量的访问还是由父类决定.
所以当我们使用father.isCanRun()访问canRun变量的时候返回的结果是false

成员方法访问规则

成员方法访问口诀是编父运子或着编左运右.
展开解释就是在编译阶段只要父类能够通过编译,无论右侧的类怎么定义都不会报错,在执行过程中的执行结果需要按照子类中重写的方法(儿子中重写方法返回的是儿子是否能跑)来决定运行的结果.
所以当我们调用father.walk()方法的时候返回的结果是儿子只能跑!.

静态方法访问规则

静态方法访问的口诀是编父运父或编左运左和成员变量一样都是看父类.



	// 父类
    public static void run(){
        System.out.println("父亲遇到抢劫犯了!不得不跑!");
    }
    // 子类
    public static void run(){
        System.out.println("儿子遇到抢劫犯了!不得不跑!");
    }

调用father.run()返回的结果是父亲遇到抢劫犯了!不得不跑!
证明了在多态情况下调用静态方法时还是调用的左侧-父类中定义的静态方法.

这部分我的理解也不是特别深刻,以后有时间还想补充集中情况
子类中是否能够在静态代码块中调用父类的静态方法等等场景
先继续向后学习,后面会整理Java虚拟机相关知识,结合类的加载等内容可能回头会对这部分理解更深刻.

参考/扩展阅读

Java基础系列第一弹之方法重载和方法重写的区别

Java基础系列第三弹之操作字符串的类都有哪些?区别是什么?

到此这篇关于Java多态成员访问的特点是什么?的文章就介绍到这了,更多相关Java多态成员访问内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java多态成员访问的特点是什么?

本文链接: https://www.lsjlt.com/news/128141.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java多态成员访问的特点是什么?
    Java多态成员访问的特点 多态概要 多态是面向对象编程的三个特性之一,这里不展开做过多介绍,有机会专门写一个关于继承,封装,多态三大特性的文章. 我之前在力扣学习模块中整理过一部...
    99+
    2024-04-02
  • java多态中成员怎么访问
    今天小编给大家分享一下java多态中成员怎么访问的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。说明成员变量,编译看左边,运行...
    99+
    2023-06-30
  • 怎么在java访问多态中的成员
    本篇文章为大家展示了怎么在java访问多态中的成员,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发...
    99+
    2023-06-14
  • java类中的两种成员访问是什么
    这篇文章主要讲解了“java类中的两种成员访问是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java类中的两种成员访问是什么”吧!1、静态成员静态成员属于类,访问时需要类访问。静态成员...
    99+
    2023-06-30
  • C#多态性的特点是什么
    这篇文章主要介绍“C#多态性的特点是什么”,在日常操作中,相信很多人在C#多态性的特点是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#多态性的特点是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-17
  • 怎么在java中访问类成员
    本篇文章给大家分享的是有关怎么在java中访问类成员,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整...
    99+
    2023-06-14
  • java中动态代理的特点是什么
    java中动态代理的特点是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说明JDK动态代理不需要实现界面,只有目标对象需要实现界面。基于接口的动态代理需要使用JDK中的AP...
    99+
    2023-06-20
  • es6类的静态成员是什么
    本篇内容主要讲解“es6类的静态成员是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“es6类的静态成员是什么”吧!在es6中,由类直接调用的属性和方法叫静态成员。在类里面对变量、函数加sta...
    99+
    2023-07-04
  • 怎么在java中访问成员变量
    怎么在java中访问成员变量?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分...
    99+
    2023-06-14
  • C++的static静态成员是什么
    今天小编给大家分享一下C++的static静态成员是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、静态成员即在定义前...
    99+
    2023-06-29
  • java的特点是什么
    Java的特点主要有以下几点:1. 跨平台性:Java通过Java虚拟机(JVM)实现了跨平台的能力,即可以在不同的操作系统上运行相...
    99+
    2023-08-30
    java
  • es6中什么是类的静态成员
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。面向对象面向对象的主要思想就是把需要解决的问题分解成一个个对象,建立对象不是为了实现一个步骤,而是为了描述每个对象在解决问题中的行为,面向对象的核心是对象...
    99+
    2022-11-22
    javascript ES6
  • java静态成员变量赋值的方法是什么
    Java静态成员变量赋值的方法是通过在静态代码块中为该变量进行赋值。静态代码块是在类加载时执行的一段代码块,可以用来初始化静态成员变...
    99+
    2023-09-15
    java
  • java中的多态有哪些特点
    多态是面向对象编程中的一个重要概念,它允许不同的对象使用同样的接口来调用方法,从而实现代码复用和灵活性。 多态性可以通过继承...
    99+
    2024-03-14
    java
  • 静态定位的特点是什么
    静态定位的特点是什么,需要具体代码示例 在网页设计中,定位(Positioning)是一种常用的布局技术,用来控制网页元素的位置。静态定位(Static Positioning)是定位...
    99+
    2024-02-22
    相比于动态定位 排列 overflow 静态定位
  • Java中封装、继承、多态特性是什么
    这篇文章主要为大家展示了“Java中封装、继承、多态特性是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中封装、继承、多态特性是什么”这篇文章吧。1.封装什么是封装,谈谈自己对封装的...
    99+
    2023-06-22
  • c++静态成员变量的作用是什么
    c++中的静态成员变量是属于类的成员变量,而不是属于类的特定对象。静态成员变量只有一个副本,而不是每个对象都有一个副本。静态成员变量...
    99+
    2024-03-11
    c++
  • 什么是Java语言的特点
    今天就跟大家聊聊有关什么是Java语言的特点,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  Java语言是面向对象的程序设计语言,它吸收了Smalltalk语言和C++语言的优点,...
    99+
    2023-06-02
  • java与javascript的特点是什么
    本篇内容介绍了“java与javascript的特点是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • java语言的特点是什么
    这期内容当中小编将会给大家带来有关java语言的特点是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Java的实现...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作