`

protected访问权限又理解了一下

    博客分类:
  • java
 
阅读更多
看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
	}
}
0
2
分享到:
评论
1 楼 eve 2011-06-30  
这个还真没注意,8错

相关推荐

    深入理解C++中public、protected及private用法

    今天本文就来十分分析一下C++中public、protected及private用法。相信对于大家深入掌握C++程序设计会有很大的帮助。 这里我们首先要明白下面几点。 1.类的一个特征就是封装,public和private作用就是实现这一目的。...

    Java零基础-访问控制权限修饰符.md

    它解释了public、private、protected和默认访问级别的含义和用法,以及它们在类、接口、成员变量和方法中的应用。 能学到什么 通过阅读本文档,您将学习以下内容: 不同访问控制权限修饰符的作用和使用场景 如何...

    理解java中的类的各种权限修饰符

    父子类可以是不同包 在不同包下面只有public 与 protected 可以访问,而且protected必须是在继承关系下才能够访问

    C++ 的三种访问权限与三种继承方式

    我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。要理解它们其实也很容易,看下面了一个例子。 父类: class Person { public: Person(const string& name, int age) :...

    C++ 类访问控制的条件总结

    因此,最关键的问题就是权限 的问题,public,protected,private 控制的就是访问权限。 public protected private 类成员是否可以访问 Yes Yes Yes 友元函数是否可以访问 Yes Yes Yes 子类是否可以访问...

    java中继承的使用案例

    继承的使用 ...重新定义toString()方法,能打印该学生的基本信息,该方法中试对private类型属性姓名、protected类型变量性别、默认访问类型变量年龄直接访问,理解子类对父类不同类型的属性的访问权限;

    ASP.NET面试题

    简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有...

    深入理解Java?内部类

    内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类  内部类的共性  (1)、内部类仍然是一个...

    C#最新面试题(127道)word格式

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    JAVA全套面试题.rar

    每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。 下面列出了使用封装的一些好处: 通过隐藏对象的属性来保护对象内部的状态。 提高了代码的可用性和可维护性,因为对象的行为可以被单独...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    其它对象对它的访问,访问权限所以有以下几种:private, protected, public, friendly。 1.8.2 对象 把类实例化,我们可以生成多个对象,这些对象通过消息传递来进行交互(消息 传递即激活指定的某个对象的方法以改变...

    ASP.NET面试题大全

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    PHP和MySQL Web开发第4版pdf以及源码

    6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的...

    PHP和MySQL WEB开发(第4版)

    6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的高级功能 ...

    PHP和MySQL Web开发第4版

    6.7.1 通过继承使用private和protected访问修饰符控制可见性 6.7.2 重载 6.7.3 使用final关键字禁止继承和重载 6.7.4 理解多重继承 6.7.5 实现接口 6.8 类的设计 6.9 编写类代码 6.10 理解PHP面向对象新的...

    【04-面向对象(上)】

    •如果访问权限允许,类里定义的属性和方法可以通过类或实例来调用, •有static 修饰的访求和属性,既可通过类来调用,也可以通过实例来调用. 对象.引用和指针 •Person p = new Person();,这行代码创建了一个...

    大华股份java笔试题-interviewer:面试官

    访问权限修饰符 public、private、protected, 以及不写(默认)时的区别(2017-11-12) 如何理解 clone 对象 二、 JavaSE 语法(2017-11-12-wl) Java 有没有 goto 语句?(2017-11-12-wl) & 和 && 的区别(2017-11-...

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    二十三种设计模式【PDF版】

    下去,浓淡几个叶子,待毛笔的水墨要干枯时,画一下树干,这样,一个活生写意的树就画出来. 我上面这些描述其实都是一种模式,创建模式的人是大师,但是拘泥于模式的人永远是工匠. 再回到传统建筑中,中国的传统建筑是过分...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    3.1.5 protected作用域 169 3.1.6 事件与继承 171 3.1.7 共享方法 174 3.1.8 共享事件 176 3.1.9 创建抽象基类 176 3.2 多接口 178 3.2.1 对象接口 178 3.2.2 辅助接口 180 3.3 抽象性 185 3.4 ...

Global site tag (gtag.js) - Google Analytics