绕过protected方法的调用(包级共享)

2023-11-16

A类在a包

package a;

import b.B;

public class A {
    protected void sys() {
        System.out.println("A protected sys方法");
    }

    public static void main(String[] args) {
        new B().sys();// 非法(想打印 B protected sys方法)
        ((A)new B()).sys();// 合法 打印 B protected sys方法
        //同一个对象,采用向上转型,就能执行被保护的方法
        //接口和实现类,接口中的方法只能是public(只能是public的原因应该是让调用方不存在非法调用)
        //上述采用非接口类(实类、抽象类),只要定义的方法能够执行(执行环境不非法),依旧能够执行子类的受保护方法
    }
}

B类在b包

package b;

import a.A;

public class B extends A {
    protected void sys() {
        System.out.println("B protected sys方法");
    }
}

此绕过protected 的保护机制,常用于 框架中,接口定义protected 方法,实现类在其他包(或给框架使用者实现),接口所在包 需要调用此方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绕过protected方法的调用(包级共享) 的相关文章

随机推荐

  • Building Mongodb with Visual Studio 2008

    Building Mongodb with Visual Studio 2008 标签 mongodbpythonjavascriptbuild数据库c 2011 08 27 14 43 938人阅读 评论 0 收藏 举报 分类 VS200
  • C++基础二:模板

    模板 模板的概念 模板就是建立通用的模具 大大提高复用性 例如生活中的模板 模板的特点 模板不可以直接使用 它只是一个框架 模板的通用并不是万能的 函数模板 C 另一种编程思想称为 泛型编程 主要利用的技术就是模板 C 提供两种模板机制 函
  • base64的原理及优缺点

    优点可以加密 减少了HTTTP请求 缺点是需要消耗CPU进行编解码
  • 机器学习总结(一)

    机器学习总结 一 一 基本概念 1 有监督学习 输入数据是带有标签的 称为有监督学习 2 无监督学习 输入数据是不带标签的 称为无监督学习 3 局部最优 函数值空间的一个有限区域内寻找最小值 这个最小值 是小于或等于附近点的函数值 但是有可
  • tinycore的探索

    tinycore的探索 缘起 tinycore的安装 tinycore的持久化 tinycore的初始设置 结语 参考博文 这篇文章会写一些我在学习tinycore的过程中的体会 感兴趣的同学可以了解一下 由于我也是刚开始学习 所以可能会不
  • 【Android】Android工具函数整理

    import android app Activity import android app ActivityManager import android app KeyguardManager import android content
  • TensorRT详细入门指南

    前言 大名鼎鼎的TensorRT有多牛逼就不多说了 因为确实很好用 作为在英伟达自家GPU上的推理库 这些年来一直被大力推广 更新也非常频繁 issue反馈也挺及时 社区的负责人员也很积极 简直不要太NICE 只是TensorRT的入门门槛
  • 比较器参数之Offset voltage(Vos)

    offset voltage 最关键的直流规格参数是输入失调电压 Vos 由于比较器的 Vos产生一个额外的直流电压与串联同相输入 它对比较器的输出阈值改变状态 让我们分析一个非反相具有三个不同 Vos 值的比较器电路更好地理解效果 请记住
  • paddle window10环境下使用conda安装

    话 一开始也是根据别人的文章 疯狂报错 我的建议是自己先根据文档进行搭建 pip 和 conda两种方式都进行了尝试 个人更推荐conda 使用pip好像会出现版本不兼容的问题 其次是会出现要大量手动pip install 的情况 cond
  • 使用coloc 进行 QTL 共定位Colocalization

    GWAS找到显著信号位点后 需要解释显著信号位点如何影响表型 常见的一个解释方法是共定位分析 主流的共定位分析包括 1 GWAS和eQTL共定位 2 GWAS和sQTL共定位 3 GWAS和meQTL共定位 4 GWAS和pQTL共定位 其
  • win7 系统安装图解教程

    链接 http www 360doc com content 10 0720 11 1495415 40258931 shtml
  • 【经典】SpringBoot thymeleaf模板引擎——WEB开发模板引擎

    模板引擎 可以使业务数据和用户界面分离 通过模板引擎自动生成一个HTML文档 简单的说可以理解为 分离数据和界面 简化网页开发 现在主流的模板引擎有Jsp Velocity Beetl Rocker Freemarker thymeleaf
  • ROS学习笔记16:机器人系统建模与仿真

    一 概述 1 机器人系统仿真 是通过计算机对实体机器人系统进行模拟的技术 在 ROS 中 仿真实现涉及的内容主要有三 对机器人建模 URDF 创建仿真环境 Gazebo 以及感知环境 Rviz 等系统性实现 1 仿真优势 低成本 高效 高安
  • Uncaught SyntaxError: Invalid shorthand property initializer at new Function () a

    data options valueField id textField name method get 将method get 等于改为冒号 或者都是一些其他的原因 比如单引号 忘了写逗号
  • Comate: 百度智能云的代码助手

    Comate是什么 Comate是百度智能云推出的一项革命性代码辅助工具 它基于文心大模型的强大理解和推理能力 旨在提高开发者的研发效率 这个全新的工具可以实现代码的快速补齐 自然语言推荐代码和自动查找代码错误等功能 为程序开发提供了全新的
  • vscode安装

    博客 https zhuanlan zhihu com p 106357123 https code visualstudio com download
  • [创业之路-47] :动态股权机制 -2- 多轮融资股权稀释后,大股东保留控制权的常见套路

    正常来说一个蒸蒸日上的公司或者被看好的公司 都要面临融资的问题 融资之后 股权就会发生比较大的变化 多轮融资之后呢 再次引进新的合伙人呢 那时候的股权肯定低于51 甚至低于34 这时候靠什么掌控公司 1 有限合伙平台模式GP VS LP 同
  • windows安装pm2

    pm2是开源的进程管理器 可用于管理您的nodejs项目等 前段时间看到同事使用到此工具 今日特地学习安装使用 安装流程如下 1 确保你电脑安装了npm 可以通过npm v命令查看 npm v 2 安装pm2 命令 npm install
  • 程序员代码打字练习题库

    创建一个新的txt文件 将本文内容全选 粘贴 保存 然后导入金山打字通 即可练习程序员常用词汇 推荐使用金山打字通 英文文章练习 自定义课程 导入txt文件 保存 接下来你就可以联系打字了 path class classpath publ
  • 绕过protected方法的调用(包级共享)

    A类在a包 package a import b B public class A protected void sys System out println A protected sys方法 public static void mai