/*
关于修饰符:
类: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. 我的 Java 学习&面试网站又又又升级了!

    晚上好,我是 Guide. 距离上次介绍 JavaGuide 新版在线阅读网站已经过去 7 个多月了(相关阅读:官宣!我升级了!!!),这 7 个多月里不论是 JavaGuide 的内容,还是 Jav ...

  2. Redis之时间轮机制(五)

    一.什么是时间轮 时间轮这个技术其实出来很久了,在kafka.zookeeper等技术中都有时间轮使用的方式. 时间轮是一种高效利用线程资源进行批量化调度的一种调度模型.把大批量的调度任务全部绑定到同 ...

  3. Javaweb_Tomcat配置

    1.基本概念 1.1 前言 web开发: web,网页的意思 静态web html,css 提供给所有人看的数据始终不会发生改变 动态web 淘宝,几乎所有的网站 提供给所有人看的数据始终会发生变化, ...

  4. rhel修改系统语言

    修改系统语言的三种方式  1.yum install system-config-language //挂载本地源,然后安装         system-config-language     2. ...

  5. D2C小练习

    前端智能化现状及未来展望 简介 DEsign: Sketch,Photoshop ,Figma 起源:微软2017年, Design to code code: 前端 核心原理 design----& ...

  6. 岭回归和LASSO

    0.对于正则罚项的理解 1.岭回归(L2 ridge regression ) 是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信 ...

  7. Harbor-私有镜像仓库的安装部署

    Harbor 安装条件 官网给出了安装需要的最低硬件和软件的条件:https://goharbor.io/docs/2.0.0/install-config/installation-prereqs/ ...

  8. 【RocketMQ】消息的拉取

    RocketMQ消息的消费以组为单位,有两种消费模式: 广播模式:同一个消息队列可以分配给组内的每个消费者,每条消息可以被组内的消费者进行消费. 集群模式:同一个消费组下,一个消息队列同一时间只能分配 ...

  9. 简单状压dp的思考 - 最大独立集问题和最大团问题 - 壹

    本文参考:CPH ,USACO Guide (大佬请越过,这是初学笔记,不要吐槽内容) 前置知识:位运算基础,动态规划基础 介绍 状态是元素的子集的动态规划算法,可以用位运算来高效的优化. 那么第一道 ...

  10. git.exe pull --progress -v --no-rebase "origin" master

    git.exe pull --progress -v --no-rebase "origin" master remote: You do not have permission ...