jdk-java, 继承与依赖ReentrantLock, 在使用方法上的区别?

问题描述

java, 继承与依赖ReentrantLock, 在使用方法上的区别?

最近在看guava的cache源码, 发现LocalCache.Segment类是继承ReentrantLock.

但是我看Segment只用到了lock,unlock,isHeldByCurrentThread 三个方法,

这三个方法都是public的,就是说如果用依赖的方式,这几个方法都可以调用到的.

又查了一下ReentrantLock 的子类, 发现子类包括有: java.util.concurrent.ConcurrentHashMap.Segment

那么为什么不使用依赖(ReentrantLock lock= new ReentrantLock()), 而是用继承呢??

或者说在什么情况下能体现出继承的好处?

时间: 2024-08-06 03:34:26

jdk-java, 继承与依赖ReentrantLock, 在使用方法上的区别?的相关文章

【lombok】lombok---帮你简化生成必要但臃肿的java代码工具 【映射注解和lombok注解同时使用 以及 映射注解放在属性和get方法上的区别】

官方地址:https://projectlombok.org/ GitHub:https://github.com/rzwitserloot/lombok 指导说明文档:http://jnb.ociweb.com/jnb/jnbJan2010.html =============================================================================================================== 本来来说,lombok

Java Spring各种依赖注入注解的区别

Spring对于Bean的依赖注入,支持多种注解方式: @Resource  javax.annotation  JSR250 (Common Annotations for Java)    @Inject  javax.inject  JSR330 (Dependency Injection for Java)    @Autowired  org.springframework.bean.factory  Spring  直观上看起来,@Autowired是Spring提供的注解,其他几个

关于java继承的一个问题

问题描述 java的Object对象有个clone方法,这个方法的修饰符是protected,如果我设计一个Class去继承Object,要使用这个clone一定要实现一个Cloneable的接口,这是为什么,我原本以为继承的protected方法就能直接用了? 解决方案 Cloneable的接口是标记接口...不是你不能访问,是访问的时候如果没有标记它是Cloneable的会抛一个异常.解决方案二:首先,这个问题与修饰符无关!楼主可以去看看JDK API 1.6.0,里面有对Object类的c

android java 继承父类里的子类问题!!!!!!!

问题描述 android java 继承父类里的子类问题!!!!!!! 请问各位,java可以继承父类的方法和全部属性,那父类里的子类可以继承使用么? android 可以继承父类的Handler.广播么??

配置JDK / JAVA

配置JDK / JAVA 1 环境变量 Path   ----外部命令搜索路径: CLASSPATH  ----类资源位置搜索路径: 1.1 设置方法1 "开始"-->"设置"-->"控制面板"-->"系统"-->"高级"-->"环境变量" -->"新建",在弹出的对话框中加入两个新的环境变量: 变量名 变量值 Path .;C:\

java继承-java关于子类继承的问题

问题描述 java关于子类继承的问题 在java中子类可以继承父类的对象吗 子类都可以继承父类的哪些功能 解决方案 令人费解的java继承问题java笔试问题(继承)java 中 集合类相关问题 解决方案二: 继承父类对象是什么意思?子类继承父类所有的属性和方法. 解决方案三: 子类当然可以继承父类,继承,顾名思义,就是子类拥有父类的所有方法和属性,此外,在子类中还可以定义一些父类中没有的方法,.当子类继承父类后, 可以直接调用父类的方法.不用再去创建,定义.这样,大大增加了代码的重用率,提高了

java继承-关于Java继承的问题,方法的调用

问题描述 关于Java继承的问题,方法的调用 在下面这个程序中, class Person{ private void print(){ System.out.println("Person>void print"); } public void fun(){ this.print(); } }; class Student extends Person{ void print(){ System.out.println(" Student >void print

关于java继承问题,求大神讲解

问题描述 关于java继承问题,求大神讲解 父类引用子类对象,父类变量可以使用子类的普通函数吗?为什么?? 解决方案 不能,因为对父类类型来说它只能访问自己有的方法,而子类类型却可以除了自己定义的方法,还有继承自父类的方法.这跟自然界的继承一样,子类有自己的特性,也有继承来的特性.而父类却只有自己的特性,不会有子类的特征. 解决方案二: 不可以的,子类继承父类后只能使用父类权限为public的方法或成员变量.父类不能调用子类的成员变量和方法.当子类继承父类后, 便继承了父类的某些特性,但父类却无

java继承 在子类中声明同名变量的问题???

问题描述 java继承 在子类中声明同名变量的问题??? 如下代码: class Person { String name; int age; public void introduce(){ System.out.println("姓名是" + name + ",年龄是" + age); } } public class Students extends Person{ // String name; public static void main(String[