Android访问修饰符的区别

来源:互联网 发布:php 大端 编辑:程序博客网 时间:2024/06/06 08:32


根据访问修饰符的范围  public>protected>default>private,我们现在看看他们之间的区别在哪里:


public :能被所有的类(接口、成员)访问。

protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类。

private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。

friendly(default)(缺省):访问权限与protected相似,但修饰类成员时不同包中的子类不能访问。

static:修饰变量,称为类变量或静态变量。静态变量是和类存在一起的,每个实例共享这个静态变量,在类加载时初始化。

final:被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不能更改。修饰类是不能派生出子类,修饰方法时,不能被当前子类的方法覆盖。

abstract:不能创建abstract 类的实例。一般被继承,实现抽象方法。类只要有一个abstract方法,类就必须定义为abstract,但abstract类不一定非要保护abstract方法不可。

下表为Java访问控制符的含义和使用情况

  类内部 本包 子类外部包 public  √ √ √ √protected √ √ √ ×default  √ √ × × private √ × × ×


方法重载时,private修饰的方法重写,语法不报错,可以通过编译, 但是调用时不会使用新写的方法,仍然调用父类的方法。


原文地址  http://xuyanzhi6688.blog.163.com/blog/static/2920588920115178519198/


0 0
原创粉丝点击