看java的克隆时遇到问题 不能直接调用Object类的clone()方法,感觉很纳闷,提示方法不可见
有查看了一下protected访问权限
1同类 2同包 3 子类(不同包)
明明子类也是可以的。一般的类都是默认继承object的,所以应该可以调用clone()方法
第一、2条都好理解
第3条子类中:应该具体解释为子类可以调用自己从父类中继承的父类的protected方法。但是还是不能调用父类自己的
protected的方法,这里的父类是指父类实例。因为这样的话违反了第2条同包的原则。
举个至简例子:
public class A extends Object{
public static void main(String[] args) {
A a = new A();
try {
/*
* protected方法(clone())从object继承而来,
* 这里是子类A自己已经用有clone()方法,所以可以调用
*/
a.clone();
} catch (Exception e) {
e.printStackTrace();
}
Object o = new Object();
/*
* 这里的o是父类Object的实例,调用clone()会有编译错误,
* 虽然是在自己的子类中但是实例还是父类,他的调用权限最大还是在自己的包中,
* 即lang包
*/
o.clone();//The method clone() from the type Object is not visible
}
}
分享到:
相关推荐
`protected`是Java中四种访问权限之一,它在类的封装和继承中扮演着重要的角色。本篇文章将深入探讨`protected`关键字的含义、用法以及它在实际开发中的应用。 1. `protected`的含义: `protected`是一种中级访问...
本文将深入探讨`private`、`public`、`default`(默认)和`protected`这四种访问权限,并通过代码示例来解析它们在实际编程中的应用。 1. `private`权限: `private`是最低级别的访问权限,它限制了成员只能在同一...
接下来,我们来看一下这些访问权限在实际源代码中的应用: - **类的访问权限**:通常,我们使用public修饰公共API,如库或框架中的类,以便其他模块可以使用。而工具类或者内部实现细节通常设为包私有。 - **成员...
2. **protected**:受保护的访问权限,允许同一包内的类和所有子类访问。 3. **默认(无修饰符)**:默认访问权限,只允许同一包内的类访问。 4. **private**:私有访问权限,仅限于声明它的类内部访问。 **二、...
本篇内容将深入探讨Java中的包和访问权限,这对于我们理解Java的类结构和权限控制至关重要。 一、包的定义与创建 包是Java中的一级组织单位,它由一个点分隔的完全限定名组成,例如`com.example.myapp`。创建包通常...
理解Java的访问权限表对于编写健壮、安全且易于维护的代码至关重要。以下是对这一主题的详细说明: 1. **公共访问(public)**: - 公共访问权限是最宽松的,允许任何地方的任何代码访问具有此权限的类、接口、...
本文将详细探讨Java中的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...
在Java编程语言中,访问权限控制是至关重要的概念,它决定了类、接口、字段和方法的可见性。这种控制机制确保了代码的封装性和安全性,防止未经授权的访问和操作。以下是对这一主题的详细探讨: 1. 访问修饰符: ...
通过上述讲解,你应该对如何在Java Web中使用Filter实现访问权限控制有了基本的理解。在深入研究这个示例的博客文章(https://blog.csdn.net/yuzhiqiang_1993/article/details/81288912)后,你可以了解到更多具体...
本文将深入探讨Java中的包和访问权限,这对于理解Java程序的结构和安全性至关重要。 首先,我们需要了解什么是包。在Java中,一个包是由一组相关的类和接口构成的集合。它们通常按功能或模块进行划分,如`java.util...
这个压缩包“基于Java的访问权限控制源代码.zip”很可能包含了一些示例代码,展示了如何在Java中实现不同级别的访问权限,以便于理解和学习。 1. 访问修饰符: Java提供了四种主要的访问修饰符:public、private、...
总之,理解和熟练运用Java的包和访问权限机制,对于编写清晰、可维护的代码至关重要。这不仅可以提高代码的可读性和可重用性,还能帮助你在设计大型项目时更好地管理复杂的依赖关系。在实际开发中,不断地实践和优化...
综上所述,理解并熟练运用Java的访问权限控制对于编写安全、可维护的代码至关重要。这个压缩包中的源代码可能包含各种示例,展示了如何在实际项目中应用这些原则。通过对这些代码的研究,开发者可以更深入地了解如何...
让我们深入探讨一下Java中的访问权限控制。 1. 访问修饰符: - **public**:公共访问修饰符,可以在任何地方被任何类访问。 - **private**:私有访问修饰符,只能在定义它的同一个类内部访问。 - **protected**...
- `protected`提供了比`public`更有限的访问权限。除了在同一个包内的代码可以访问`protected`成员外,继承自包含该成员的类的子类也可以访问。这意味着`protected`成员在子类继承时保持可见性,允许子类进行必要的...
在编程世界中,访问权限控制是至关重要的,它确保了代码的安全性和封装性。本文将深入探讨“访问权限及继承”这一主题,基于给定的标题和描述,我们可以推测这可能是一个关于面向对象编程(OOP)中的概念,特别是...
它不仅可以帮助我们更好地控制类的可见性,还能避免因访问权限不当导致的错误。此外,掌握 `protected` 的特殊规则有助于我们更灵活地设计类结构,提高代码的复用性和可维护性。希望本文能够帮助您更好地理解和应用 ...
通过深入理解这些访问权限控制原则,开发者可以编写出更加安全、可维护的Java程序。"Java访问权限控制源代码.rar"这个资源可能包含了各种示例,帮助你更好地理解和应用这些概念。你可以通过解压文件中的codefans.net...
Java类的访问控制机制是面向对象编程中的一个重要概念,它定义了类及其成员的可见性和访问权限。本文主要探讨了Java中的`protected`继承链访问控制机制,这是Java封装特性的一个重要组成部分。下面将详细介绍这个...