/*
关于修饰符:
类:public default
                public protected default private
same class          √           √        √        √
same package      √           √        √        ×
subclass          √           √        ×        ×
dif    package          √           ×        ×        ×

#但是需要注意的是:如果想使用defualt修饰方法和变量的是时候,
不需要写default,不写就是默认default
*/
import com.remoo.test.Learn09_Test;
public class Learn09{
    public static void main(String[] aa){
        //Remoo.P_hello="111";
        //System.out.println(P_hello);
        //如果是private,则不能通过不同的类访问
        
        //Remoo.hello="你好";
        System.out.println(Remoo.hello);//可以输出
        //证明default可以通过不同类访问
        
        System.out.println(Test.hello);//可以输出
        //证明default可以在同一个包内调用
        
        //Test.Son_Protected_hello = "hello";
        System.out.println(Test.Son_Protected_hello);//可以输出
        //通过子类访问子类自身的protected属性
        System.out.println(Test.Fat_Protected_hello);//可以输出
        //通过子类访问父类的protected属性
        //System.out.println(Remoo.Son_Protected_hello);//不能通过父类找子类
        System.out.println(Remoo.Fat_Protected_hello);//可以输出
        //访问父类中的protected属性
        
        //测试就近原则-父类子类的优先性
        System.out.println(Remoo.Same_Test);//fat
        System.out.println(Test.Same_Test);//son
        
        //访问另一个包
        Learn09_Test.main(null);
        //System.out.println(Learn09_Test.welcomeWord1);
        //System.out.println(Learn09_Test.welcomeWord2);
        //System.out.println(Learn09_Test.welcomeWord3);
        //上面三个都不行。只有public的才可以通过不同的包访问
        System.out.println(Test1.callDifPackageProtected());
        System.out.println(Learn09_Test.welcomeWord4);//public可以访问
        
        //但是protected可以在不同包中但是有继承关系的类中使用
        //要在不同包中想要访问其protected的成员,必须要继承之后才能用
        System.out.println(Test.callSuperClassProtected());
        
        
    }
    
}
class Test1 extends Learn09_Test{
    static String callDifPackageProtected(){//protected可以在不同包中的继承对象中访问
        return welcomeWord3;
    }    
    //default不可以在不同包中访问
    //static String callDifPackageDefault(){
    //    return welcomeWord2;
    //}
}

class Test extends Remoo{
    protected static String Son_Protected_hello="子类中的protected";
    static String Same_Test="son";
    
    static String callSuperClassProtected(){//子类调用父类的protected
        return Fat_Protected_hello;
    }

}

class Remoo{//父类
    private static String P_hello = "父类中的private";
    static String hello = "父类中的default";
    protected static String Fat_Protected_hello="父类中的protected";
    static String Same_Test="fat";
}

【java】学习路线10-权限修饰符详解的更多相关文章

  1. Java之Static静态修饰符详解

    Java之Static静态修饰符详解 Java之Static静态修饰符详解 一.特点 1.随着类的加载而加载,随着类的消失而消失,生命周期最长 2.优先于对象存在 3.被所有类的对象共享 4.可以直接 ...

  2. java 基础 四种权限修饰符

    /** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...

  3. abstract关键字、final关键字、static关键字、访问修饰符详解

     abstract关键字.final关键字.static关键字.访问修饰符详解 abstract关键字: final关键字: static关键字: 访问修饰符:

  4. java(异常体系及权限修饰符)

    java异常体系 异常的体系: 异常体系: --------| Throwable 所有错误或者异常的父类 --------------| Error(错误) --------------| Exce ...

  5. java四种访问权限修饰符

    java中四个访问权限修饰符: public(公开的).protected(受保护的).default(默认的).private(私有的). 它们决定了紧跟其后被定义的东西的使用范围. 适用范围< ...

  6. Java第十二天,权限修饰符

    Java当中权限修饰符共有四种.分别是public.protected.(default).private. 注:YSE代表可访问,NO代表不可访问.   同一个类 同一个包,非继承 不同的包,有继承 ...

  7. java中四种权限修饰符区别

    总的概括:public > protected > (default) > private 细分见下表格: 权限修饰符 public protected (default) priv ...

  8. Java的四种权限修饰符

    private:仅对本类可见 缺省(不需修饰符):对本包可见 protected:对本包及所有子类可见 public:对所有类可见 修饰符: * 权限修饰符:private,默认的,protected ...

  9. Java中类成员访问权限修饰符(public、protected、default、private)

    1.public(公共的): 任何类都可以进行访问(最不严格). 2.protected(保护的): 同一包内的类以及其子类可以进行访问. 3.default(缺省的): 类中不加任何访问权限限定的成 ...

随机推荐

  1. HtmlParse:一款超轻量级的HTML文件解析和爬取工具

    HtmlParse 是一款基于windwos平台的HTML文档解析工具,可快速构建DOM树,从而轻松实现网页元素的爬取工作.DOM树就是一个HTML文档的节点树,每个节点由:标签(Tag).属性(At ...

  2. 使用FileSystemWatcher监听文件状态

    更新记录 本文迁移自Panda666原博客,原发布时间:2021年7月2日. 一.FileSystemWatcher类型介绍 在.NET中使用 FileSystemWatcher 类型可以进行监视指定 ...

  3. Centos使用crontab自动定时备份mysql的脚本

    在我们网站上线之后免不了需要备份数据库,为什么要备份呢?我给大家列出了3个理由. 1.防止数据丢失 2.防止数据改错了,可以用来恢复 3.方便给客户数据 以 上几点告诉我们要经常备份,当然我今天给大家 ...

  4. Python爬虫+数据可视化教学:分析猫咪交易数据

    猫猫这么可爱 不会有人不喜欢吧: 猫猫真的很可爱,和我女朋友一样可爱~你们可以和女朋友一起养一只可爱猫猫女朋友都有的吧?啊没有的话当我没说-咳咳网上的数据太多.太杂,而且我也不知道哪个网站的数据比较好 ...

  5. NC201605 Bits

    NC201605 Bits 题目 题目描述 Nancy喜欢做游戏! 汉诺塔是一个神奇的游戏,神奇在哪里呢? 给出 \(3\) 根柱子,最开始时 \(n\) 个盘子按照大小被置于最左的柱子. 如果盘子数 ...

  6. python sock5代理

    安装 pysocks:pip install pysocks # coding:utf-8 ''' @version: python3.6 @author: 'eric' @license: Apac ...

  7. App Inventor拓展项目——钢琴游戏

    本以为安卓只能写代码开发呢,结果安卓课程是这样一个图形化的开发方式,趣味性强一些吧.这里记录一下自己根据学习内容拓展的这个钢琴游戏. 先简要介绍一下 Android应用开发者(英语:App Inven ...

  8. async和await详解

     async和await详解 1.非UI线程中执行 Test()函数带有async 和await ,返回值写成Task. 1 using System; 2 using System.Threadin ...

  9. HashSet存储自定义数据类型和LinkedHashSet集合

    HashSet存储自定义数据类型 public class Test{ /** * HashSet存储自定义数据类型 * set集合保证元素唯一:存储的元素(String,Integer,Studen ...

  10. python代码是如何执行的?

    ​ 解释运行程序 回忆上次内容 py 文件的程序是按照顺序 一行行挨排解释执行的 我们可以 python3 -m pdb hello.py 来对程序调试 调试的目的是去除 bug 别害怕 bug bu ...