2 u013179958 u013179958 于 2017.01.13 15:06 提问

对于Java的权限访问修饰符的一些疑问!

我在A中定义个4个变量,权限修饰符,分别是public,private,protected,默认

我为什么无法通过b包中的C(已经继承了A),来获取a包中的A的protected的属性?

https://my.oschina.net/u/1169535/blog/403589

 package a;

public class A {

    public String id;
    private String name;
    protected String time;
    String flg;

}
 package a;

import org.junit.Test;

public class B {

    @Test
    public void f1(){
        A a = new A();
        String flg = a.flg;
    }
}

 package b;

import org.junit.Test;

import a.A;

public class C extends A{
    @Test
    public void f1(){
        A a = new A();
        String id = a.id;
    }
}

2个回答

u010434246
u010434246   2017.01.13 15:35
已采纳

楼主:protected的作用是只供子类可以访问的

在C中去new A的对象,因为不在同一个包里面,所以不能访问的是A的protected 属性。 因为C继承了A ,所以C是继承A的protected属性的, 你可以在C类使用C类的属性(继承与A类protected属性。)

u013179958
u013179958 OK了
一年多之前 回复
Smile_IT_life
Smile_IT_life   2017.01.13 15:11

你是新手吧,子类只能访问基类的public类型变量

qq_37331167
qq_37331167 回复据说名字太长不容易被发现: protected只能是在同包内使用,他的作用就是对外界的包进行封装,自己其他的类就能查询到此变量或者方法
一年多之前 回复
viewgroup
viewgroup 回复据说名字太长不容易被发现: protected的作用是保护这个属性或者方法不被外来类使用。
一年多之前 回复
u013179958
u013179958 我看网上都是这么说的
一年多之前 回复
u013179958
u013179958 protected,保护修饰符,本包or子类可以访问
一年多之前 回复
u013179958
u013179958 那protected的作用是什么?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java 中的访问修饰符权限等级
访问修饰符的总结: 访问修饰符      本类       同包       子类      其它 private                √ 默认(不写)          √           √ protected            √           √            √ public                  √           √    
四种访问权限修饰符
Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类成员的访问权限。 对于class的权限修饰只可以用public和default(缺省)。          Øpublic类可以在任意地方被访问。          Ødefault类只可以被同一个包内部的类访问。
Java中访问修饰符protected的权限
在Core Java中有这样一段话“在Object类中,clone方法被声明为protected,因此无法直接调用anObject.clone()。子类只能直接调用受保护的clone方法克隆它自己。为此,必须重新定义clone方法,并将它声明为public,这样才能让所有的方法克隆对象”。但是不是所有的子类都可以访问受保护的方法吗?不是每个子类都是Object的之类吗?下面就用例子来说明下prot
Java四种访问修饰符_测试&详解
Android中的访问权限修饰符有public,protected,default,private四种, 之前一直处于似懂非懂的状态,这次就彻底理解下.Step1: Test类中,定义四个静态方法,并在一个test()方法中测试调用.public class Test { public void test() { methodPublic(); method
java访问权限修饰符(表格)
总容易忘记,做个表格时刻提醒自己. 作用域 当前类 同一package 子孙类 其他package public √
Java 中4种访问修饰符 public/protected/default(friendly)/private
(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。 (2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。 (3)对于default来说,有点的时候也成为friendly
Java中四种访问修饰符访问权限
对于刚刚毕业的学生来说,面试的会比较容易遇见的题目(当初我刚刚毕业面试的时候遇到过几次),毕竟这四个访问修饰符是比较基础的知识点,一般先记忆权限访问比较“严格”的private访问修饰符,在记忆其他的,当然,你选择你自己擅长的记忆方式去理解它,毕竟死记没多久就会忘记了。万丈高楼平地起,基础还是很重要的。                                                ...
java 访问权限修饰符理解
访问权限修饰符 a、私有权限(private)    private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在其他类中不能调用。    b、默认权限(default)    类,数据成员,构造方法,方法成员,都能够使用默认权限,即不写任何关键字。默认权限即同包权限,同包权限的元素只能在定义它们的类
java中的访问权限修饰符 含义及分类
java中的权限修饰符(访问修饰符)有四个:公共的(public)、默认的、受保护的(protected)和私有的(private) 私有的(private就是只能在该类中访问,不能在其他类中直接访问,即使是通过该类的实体类也不能直接访问,要访问则需要该类中提供的访问方法或取值方法。 默认的(default): 就是没有修饰单词。在没有其他三个修饰符修饰时,都被默认修饰。默认修饰的,除了在本类
Java访问权限修饰符的区别
Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符