关闭

java之中的四种访问权限和子类如何继承父类特性

1535人阅读 评论(0) 收藏 举报
分类:

Public:对所有类可见

Protected:对同一包中的类,和子类可见

Private:仅对类本身可见        

Default:对同一包中的类可见

为了理解方便,可见的意思也就是可以使用这个特性(域,方法,类),对子类可见就是子类也具有这些特性。但是继承的时候,子类从父亲继承来的那些东西,他们的权限仍然是保持不变的,子类是具有这些特性,但是你能不能使用子类的这些特性,取决于这些特性的权限修饰符,如果你和子类在一个包,那么子类继承父亲的所有特性你都可以使用,如果你和子类不在同一个包,那么子类继承父类的特性,你只能使用public的。

package1:Parent,ChildClass1,TestInheritance

package2:ChildClass2,TestInheritance

package3:TestInheritance


继承的时候,属性的继承原则和方法的继承原则完全相同,所以我们以属性为例子。

Public class Parent{

         Public int a;

         Protected int b;

         Int c;

         Private int d;

         …}

Child1会继成所有public,protced,属性,又因为和父类在同一个包中所以还会继承默认属性,也就是a,b,c

Child2会继成所有public,protced,属性,但是因为和父类在不同包中,所以并不能继承默认级别属性,也就是a,b

但是需要注意的是这些特性依然属于父类的特性,你在使用这些子类的时候,使用的也是父类的特性,父类里面那些特性哪些对你可见,取决于你想对于父类的位置,和这些特性的修饰符。而不是你想对于子类的特性。

假设现在有一个Test类,它可能在package1,package2,package3中:

Package1中,则可以看见Child1中所有三种属性,a,b,c;而Child2的属性能看到它所继承的特性之中,想对于父类你可见的时a,b.

Package2中,则可看见Child1中public属性a,因为它的另外两个属性是protected和默认级别,所以不可见。而Child2中也只能看到a.

如果在Package3,则只能看到Child1和Child2中公开的属性a.

总之:父类里面所有public和protected属性子类都能继承,但是只有当子类和父亲在同一个包中的时候才能继承默认级别属性。而且继承的时候不管这个属性或者方法是static的,或者是final的。当我们在通过子类访问子类从父类继承的特性时,相对于父类的位置。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

C++ 公有继承、保护继承和私有继承中类成员的访问权限的控制

zz: http://blog.sina.com.cn/s/blog_b35e31b90101b6y7.html 为了防止连接失效,所以直接转过来备份了! 很多同学到现在仍然对访问权限不是很清楚,...
  • temanIU
  • temanIU
  • 2016-02-26 16:21
  • 1392

C++的三种访问权限与三种继承方式

三种访问权限我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。要理解它们其实也很容易,看下面了一个例子。 父类:class Pers...
  • luoweifu
  • luoweifu
  • 2015-07-19 11:10
  • 11305

子类的四种访问权限

  • 2012-04-16 23:01
  • 23KB
  • 下载

面向对象三大特征,super关键字,以及父类引用指向子类对象。访问权限的大小。

一.封装,反射的时候在详细补充。 二.继承 补充:子类的访问权限一定要大于等于父类。 访问权限的优先级顺序:public(在哪里都可以访问)>protected(保护的意思,子类可以访问,但是子类的权...
  • zhang493397949
  • zhang493397949
  • 2017-08-03 06:59
  • 172

java 类继承两个父类,同名变量 public 比protected具有优先访问权限

A 有一个爸爸,一个爷爷, 爸爸和爷爷都有 imgViewGroup1 ,imgViewGroup2 这连个共同属性 而在爸爸中,这两个属性的等级是protected,在爷爷中是pu...
  • wuqilianga
  • wuqilianga
  • 2016-09-09 12:20
  • 564

java学习之路 之 高级类特性-四种权限修饰符、关键字super、子类对象的实例化过程

四种访问权限修饰符 Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类对象成员的访问权限。 对于class的权限修饰只可以用public和de...
  • OnlyLove_longshao
  • OnlyLove_longshao
  • 2016-08-05 22:43
  • 885

JAVA——编译运行含有包层的类、同包和不同包类的相互访问、不同包子类和父类的访问权限

1.编译运行含有包层的类 java中,为了确保类名的唯一性,以及方便组织自己的代码,引入了包package。 package语句必须放在程序代码的第一行,除注释之外。 在某一程序代码的首行,如果没有p...
  • jingzi123456789
  • jingzi123456789
  • 2017-05-11 10:30
  • 416

继承原则与子父类初始化过程,类成员访问权限,普通类与抽象类,throwble类,重写与重载,string对象修改,i=i++;

Public>protected>default>private 以上是类成员访问权限及权限大小 2.继承原则和继承时初始化过程 子类继承父类的成员变量 子类继承父类除构造方法以外的成...
  • bird_tp
  • bird_tp
  • 2017-11-20 22:18
  • 42

继承与接口---子类的访问权限

请考虑标记为A到J的语句在编译时可能出现的情况。如果能够成功编译,请记为RIGHT,否则标记为ERROR。#include #include class Parent { public: Pa...
  • will130
  • will130
  • 2015-10-13 10:04
  • 316

java中内部类的创建四种情况,三种方式,及内部数据访问权限

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式。 第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,...
  • u012142423
  • u012142423
  • 2014-08-05 23:06
  • 2511
    个人资料
    • 访问:4537次
    • 积分:255
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:10篇
    • 译文:0篇
    • 评论:0条
    文章分类