先看下面的例子

public class Test6就近原则 {

public static void main(String[] args) {

A a = new A();

B b = new B();

a.fun();

b.fun();

}

}

class A {

private void print() {

System.out.println("A");

}

public void fun() {

this.print(); //this写不写效果一样

}

}

class B extends A{

public void print() {

System.out.println("B");

}

}

程序运行的结果都是A,因为类A的print方法是private的,不能被子类B重写,B类的print方法只是一个和A类print方法同名的方法,而在调用fun方法时,java采取就近原则,在fun方法里调用的print方法是与fun方法同在一个类的print方法,即A类里的print方法。

若把类A的print方法改为非private,那么类B里的print方法就是对父类A print方法的重写,此时结果为B,即java多态。

java的就近原则啥意思_java就近原则浅析相关推荐

  1. java 迪米特_Java设计原则—迪米特法则(转)

    定义: 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP). 一个对象应该对其他对象有最少的了解.通俗地讲,一个类应该对 ...

  2. java面向对象程序设计第三版_JAVA面向对象程序设计之创建型设计模式

    [本文详细介绍了JAVA面向对象程序设计中的创建型设计模式,欢迎读者朋友们阅读.转发和收藏!] 1 基本概念 1.1 什么是设计模式 设计模式( Design pattern )是一套被反复使用.多数 ...

  3. java状态模式和策略模式_Java状态和策略设计模式之间的差异

    java状态模式和策略模式 为了在Core Java应用程序中正确使用状态和策略设计模式,对于Java开发人员清楚地了解它们之间的区别很重要. 尽管状态和策略设计模式的结构相似,并且都基于开放式封闭设 ...

  4. 来了超火爆的Java游戏羊了个羊_java开发游戏项目

    <羊了个羊>是一款网络上的卡通背景消除闯关游戏,游戏利用各种道具和提示来消除每一个关卡当中的障碍和陷阱. 游戏规则 羊了个羊在游戏下方共有7个槽位,玩家只要把3个相同方块点到槽位中就会消除 ...

  5. Java依赖于抽象不依赖于具体,依赖倒置原则(Dependecy-Inversion Principle)

    依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 抽象:即 ...

  6. java 父类强制转换为子类_[java]Java中父类强制转换成子类的原则

    Java中父类强制转换成子类的原则:父类型的引用指向的是哪个子类的实例,就能转换成哪个子类的引用. 例: public class Test { public static void main(Str ...

  7. 从零开始学习Java设计模式 | 软件设计原则篇:里氏代换原则

    在本讲中,我来为大家介绍一下软件设计原则里面的第二个原则,即里氏代换原则. 概述 首先,大家应该知道,里氏代换原则是面向对象设计的基本原则之一.那什么是里氏代换原则呢?里氏代换原则是指任何基类可以出现 ...

  8. 【源码+教程】Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕设项目_Java毕业设计_计算机毕业设计_Java项目开发

    今天为大家带来的是Java实战项目--学生成绩在线管理,可以用来做毕业设计喔~源码和教程就在下方.请大家查收~[源码+教程]Java学生成绩在线管理项目_Java实战项目_Java开源项目_Java毕 ...

  9. java开闭原则_什么是开闭原则?如何实现开闭原则

    2015-04-13 06:30:01 阅读( 137 ) 开闭原则的解释就是:软件实体应当对扩展开放,对修改关闭,也就是:软件系统中包含的各种组件,例如模块(Modules).类(Classes)以 ...

最新文章

  1. webpack文章(持续更新)
  2. 图片和图形之性能和视图层次结构(18)
  3. JavaScript doT模板引擎
  4. linux是什么样的_您的Linux设置是什么样的?
  5. html签到插件,GitHub - inu1255/soulsign-chrome: 魂签,一款用于自动签到的chrome插件
  6. zabbix分布式监控环境搭建
  7. ffempge常用指令_fluent-ffmpeg 常用函数
  8. Python手机App数据抓取实战:抖音用户的抓取
  9. [渝粤教育] 西南科技大学 管理学原理 在线考试复习资料(6)
  10. 五、信息安全术语中英文词条对照表
  11. 细粒度的、安全高效的基于区块链数据溯源系统 Fine Grained, Secure and Efficient Data Provenance on Blockchain Systems(一)
  12. Encoded password does not look like BCrypt的原因及解决办法
  13. 【JUC高并发编程】—— 再见JUC
  14. Java实现比赛打分,去掉最小值及最大值,求平均值
  15. HTML5+CSS3小实例:简约不简单的社交分享按钮
  16. 进程的攻与“防” ---- 进程隐藏(Win7 x32 绕过PC Hunter)
  17. MySQL数据库图文安装详解及相关问题
  18. JavaWeb课程设计(风险地区查询系统)
  19. 几种生成验证码的方式以及计算表达式的计算
  20. linux系统怎么共享网络,在Linux操作系统的网络上共享计算机

热门文章

  1. IBM小型机厉害的高级功能
  2. linux 创建普通用户
  3. Android JetPack组件-CameraX初探
  4. 工信部:谨防钓鱼邮件攻击事件
  5. 808操作系统 文件管理
  6. 热烈庆祝菏泽市牡丹区女企业家协会成立 太爱肽吴霞董事长当选第一届名誉会长
  7. DayDayUp:人生必做的100件事,那么,你完成多少了呢?
  8. spring 在web.xml 里面如何使用多个xml配置文件
  9. 运营商大数据系列(一) LTE信令数据简析
  10. 淘宝商品详情API接口、获得淘宝商品详情接口调用示例