public private protected default

这几个限定访问控制符只是在编译阶段起作用,在运行阶段不起作用

private修饰符 , 本类可以访问

default修饰符 , 本类,本包可以访问 (这是默认的,即什么都不写)

protected修饰符 ,本类,本包,子类可以访问

public修饰符  , 都可以访问

关于protected修饰符

protected是用来让子类可以访问父类的方法和属性的

必须有子类,而与子类所在的位置没有关系

对象是子类类型,当有多个子类时,必须是在本子类当中

package com.moreas.concurrency;

public class Person {

    private String name;
int age;
protected String color; public Person() {
} public Person(String name, int age, String color) {
super();
this.name = name;
this.age = age;
this.color = color;
} public void say() {
System.out.println(this.name + " say: I am " + this.color + " Person");
}
}
package com.moreas.concurrency.c;

import com.moreas.concurrency.Person;

public class BlackPerson  extends Person {

    public static void main(String[] args) {

        BlackPerson  p1 =  new BlackPerson();
System.out.println("color:" + p1.color);//protected Person p2 = new BlackPerson(); //对象不是子类类型
//String col = p2.color; //编译出错
} }
package com.moreas.concurrency.c;

import com.moreas.concurrency.Person;

public class Other extends Person {

    public static void main(String[] args) {

        BlackPerson  p1 =  new BlackPerson();
// System.out.println("color:" + p1.color);//protected //编译出错,不是在本子类当中
} }

下面是错误的理解,以为只要是在子类当中,就可以访问protected属性了

最新文章

  1. [Top-Down Approach]Take Notes
  2. 转:webRTC的前世今生
  3. 【服务器防护】VPN的ip变更,导致无法连接服务器,解决方法【阿里云ECS】
  4. Linux日常使用指令大全
  5. 如何重建Octopress本地环境
  6. H2嵌入式数据库的各种连接方式
  7. python 代码格式化工具:pep8ify
  8. jQuery Mobile发展新闻阅读器,适应iphone和android打电话
  9. Android相关修改教程
  10. 福利:工作经常用到的Mac软件整理(全)
  11. cf455C Civilization (并查集)
  12. 如何理解<base href="<%=basePath%>"
  13. 更好用的cmd窗口
  14. 利用.NET Core类库System.Reflection.DispatchProxy实现简易Aop
  15. Python学习笔记十:json序列化,软件结构目录规范,ATM作业讲解,import本质论
  16. Spring + Mybatis应该如何配置
  17. .NET直接编译成本地代码:.NET Native架构简介
  18. 1001: [BeiJing2006]狼抓兔子
  19. PHP中mysql_fetch_row()、mysql_fetch_assoc()和mysql_fetch_array()的联系
  20. 51NOD 1616 最小集合

热门文章

  1. Android文件的流操作工具类
  2. JavaScript中判断整字类型最简洁的实现方法
  3. bootstrap timepicker 在angular中取值赋值 并转化为时间戳
  4. CSS3布局之多列布局columns详解
  5. JavaScript面向对象编程指南(五) 原型
  6. ThinkPhp框架对“数据库”的基本操作
  7. Spotlight on Mysql详细介绍
  8. Android 与Java 进程退出 killProcess与System.exit
  9. [TensorFlow]Tensor维度理解
  10. PyCharm 在PyCharm中使用GitHub