返回顶部
首页 > 资讯 > 后端开发 > Python >java多态中的就近原则介绍
  • 442
分享到

java多态中的就近原则介绍

2024-04-02 19:04:59 442人浏览 薄情痞子

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

摘要

直接上题: 题目补充: class A { int m; //-10 int getM() { retu

直接上题:

在这里插入图片描述

题目补充:


class A {
    int m;                     //-10
    int getM() {
        return m;
    }
    int seeM() {
        return m;
    }
}
class B extends A {
    int m ;                      //10
    int getM() {
       // System.out.println(this.m+"............"+super.m);
        return m+10;
    }
}
public class Test {
    public static void main(String args[]) {
        B b = new B();                               //先找B,B没有再找A,找A的时候,就要注意:就近原则了
        b.m = 10;
        //此刻,A类的m为0,B类的m为10
        System.out.println("b.seeM():"+b.seeM());
        System.out.println("b.getM():"+b.getM());//20

        A a = b;                                  //把b符给a这样创建对象的方法,还是先找B,B没有再找A,找A的时候,就要注意:就近原则了
        //此刻,A类的m仍为0,B类的m仍为10
        System.out.println("...................................");
        System.out.println("a.seeM():"+a.seeM());
        System.out.println("a.getM():"+a.getM());
        System.out.println("...................................");

        a.m = -10;//A只能改自己的m,不能改B的m,所以
        //此刻,A类的m为-10,B类的仍m为10

        System.out.println("b.getM():"+b.getM());//20   b始终调用重写后的getM()方法
        System.out.println("a.getM():"+a.getM());//b.getM()是20,后来把b赋给a,a也成了20     20
        //b调用的getM()方法是重写之后的getM()方法,所以是10+10

        System.out.println("a.seeM():"+a.seeM());
        System.out.println("b.seeM():"+b.seeM());//此时不管是a的m还是b的m都是-10            -10
        System.out.println("a.m:"+a.m+"   b.m:"+b.m);
        System.out.println("a.getM():"+a.getM());
        //因为b自己没有seeM方法,所以b在使用seeM方法时,是用的父类A的seeM方法,根据就近原则,b在调用seeM方法时是使用的A.m的-10
        //所以,b通过seeM()方法看到的是m是a的m
    }
}

在这里插入图片描述

判断成员变量的方法\技巧其实很简单:

只需要:

确定当前这个类 调用的成员方法 是先找谁?

=>如果先找父类,找就完事了

=>如果先在子类,子类找到了要用的方法,那就用;

如果没找到,还要去父类里面去找要用到的方法,注意,这时就要使用就近原则

所以,关键有二:

一,确定先找谁?先找父类还是先在子类

eg:以上面的题为例:

B b = new B();//子类B, 子类 方法找完还 没找到 时,还要父类 里面找

A a = b;//注意这种 : 还是 子类B, 子类 方法找完还 没找到 时,还要父类 里面找

A a = new A();//这个时候,父类A,但 父类 方法找完还没找到时,不会再找 子类 了!

二,当从子类B找到父类A时,注意:要用到就近原则

到此这篇关于java多态中的就近原则介绍的文章就介绍到这了,更多相关java多态就近原则内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: java多态中的就近原则介绍

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

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

猜你喜欢
  • java多态中的就近原则介绍
    直接上题: 题目补充: class A { int m; //-10 int getM() { retu...
    99+
    2024-04-02
  • php中$this的就近原则是什么意思
    这篇文章主要讲解了“php中$this的就近原则是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php中$this的就近原则是什么意思”吧!说明$this的就近原则不仅适用于priv...
    99+
    2023-06-20
  • CSS样式就近原则指的是什么
    这篇文章主要介绍“CSS样式就近原则指的是什么”,在日常操作中,相信很多人在CSS样式就近原则指的是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CSS样式就近原则指的是...
    99+
    2024-04-02
  • java面向对象——多态的详细介绍
    一、概述多态是继封装、继承之后,面向对象的第三大特性。生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是...
    99+
    2020-05-09
    java入门 java 面向对象 多态
  • Web前端的编码原则介绍
    这篇文章主要讲解了“Web前端的编码原则介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Web前端的编码原则介绍”吧!1、善用DIV来布局当开发一个Web...
    99+
    2024-04-02
  • 正则表达式的原理介绍
    本篇内容主要讲解“正则表达式的原理介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“正则表达式的原理介绍”吧!正则表达式可能大部分人都用过,但是大家在使用的时候...
    99+
    2024-04-02
  • 【Java面向对象】多态的详细介绍,简单易懂,看这一篇就够了
    文章目录 什么是多态多态的优点多态的分类重载式多态案例 重写式多态 多态的向上转型案例 多态的向下转型案例 什么是多态 A: 方法或对象具有多种形态,是面向对象的第三...
    99+
    2023-10-07
    java 数据结构 javascript jvm
  • Java面向对象设计原则之迪米特法则介绍
    目录一、迪米特法则的定义二、迪米特法则的含义三、总结一、迪米特法则的定义 迪米特法则,也称为最少知识原则,虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗...
    99+
    2023-02-14
    Java迪米特法则 Java设计原则
  • java面向对象继承与多态介绍
    目录一.概述  二.继承2.1 继承的概述2.2 继承机制2.3 类中属性,方法的继承与覆盖2.4 super 关键字三. 多态总结一.概述 ...
    99+
    2024-04-02
  • java中staticclass静态类的实例介绍
    这篇文章主要讲解了“java中staticclass静态类的实例介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java中staticclass静态类的实例介绍”吧!一般情况下是不可以用s...
    99+
    2023-05-30
    java
  • Java中枚举的实现原理介绍
    目录基本概述使用方式条件选择循环遍历集合映射常用方法总结基本概述 在 JDK1.5 之前,通过定义常量使用的都是:public static fianl。而枚举的设计,就是把相关的常...
    99+
    2024-04-02
  • Java中轻量级规则引擎Groovy介绍
    一、场景描述 假如在开发一个充值功能,需要支持经常变化的充值营销活动,产品提出了以下需求: 根据不同季节,不同节日做不同的充值送活动,以及不定期的优惠活动。 还需要根据用户的等级以及用户以往的充值历史做不同的营销活动。 能够灵活的配置营销活...
    99+
    2023-09-02
    java 开发语言
  • Java GC的工作原理介绍
    本篇内容主要讲解“Java GC的工作原理介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java GC的工作原理介绍”吧!JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示...
    99+
    2023-06-17
  • Java线程的五种状态介绍
    目录1. 线程的5种状态2. Java线程的6种状态3. Java线程状态的转换1. 线程的5种状态 从操作系统层面上,任何线程一般都具有五种状态,即创建、就绪、运行、阻塞、终止。 ...
    99+
    2024-04-02
  • java中多态的原理是什么
    今天就跟大家聊聊有关java中多态的原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2...
    99+
    2023-06-14
  • PHP无状态的介绍与原理解析
    PHP无状态的介绍与原理解析 在Web开发中,无状态性是一个重要概念,它指的是服务器在处理客户端请求时不会保存任何客户端的状态信息,每个请求都是独立的,并不依赖于之前的请求。PHP作为...
    99+
    2024-03-06
    原理 php 状态
  • grep中的正则表达式介绍
    本篇内容介绍了“grep中的正则表达式介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!grep是Linux中用于处理文件的工具之一。gre...
    99+
    2023-06-05
  • Java工厂模式的使用细则介绍
    目录工厂模式简单工厂模式工厂方法模式抽象工厂模式工厂模式 工厂模式顾名思义就是生产实例的工厂,使用工厂模式不会在程序中使用new关键字创建实例。而是将创建对象的细节隐藏,对外提供统一...
    99+
    2023-02-21
    Java工厂模式 Java工厂设计模式 设计模式工厂模式
  • Java反射机制的原理介绍
    这篇文章主要介绍“Java反射机制的原理介绍”,在日常操作中,相信很多人在Java反射机制的原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java反射机制的原理介绍”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • Python的类、继承和多态简单介绍
    这篇文章主要讲解了“Python的类、继承和多态简单介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python的类、继承和多态简单介绍”吧!类的定义假如要定义一个类 Point,表示二维...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作