Number | 范围 | private | default | protected | public |
---|---|---|---|---|---|
1 | 同一包中的同一类 | √ | √ | √ | √ |
2 | 同一包中的不同类 | √ | √ | √ | |
3 | 不同包中的子类 | √ | √ | ||
4 | 不同包中的非子类 | √ |
封装:不必要公开的数据成员和方法 使用private关键字进行修饰。意义:安全性。
继承:对共性的抽取。使用extends关键字进行处理。意义:可以对代码进行重复使用。
class Cat extends Animal{}
此时, Animal 这样被继承的类, 我们称为 父类 , 基类 或 超类, 对于像 Cat 这样的类, 我们称为 子类, 派生类。
和现实中的儿子继承父亲的财产类似, 子类也会继承父类的字段和方法, 以达到代码重用的效果
java中一个子类只能继承一个父类。java是单继承。
子类构造的同时,要先帮助父类来进行构造。
super()显示调用构造方法
super:[不能出现在静态方法当中] 是父类对象的引用 它是依赖于对象的,static是不依赖于对象的,他们是不能共存的
super();//调用父类的构造方法
super.func();//调用父类的普通方法
super.data;//调用父类的成员属性
this关键字访问类的成员变量和成员函数时不受访问权限的控制,可以访问本类中所有的成员变量和方法,包括private的成员变量和方法。也可以通过this访问本类的static成员,不过由于static成员可以通过类名直接访问,如果通过this来访问会有“The static field ××× should be accessed in a static way”的警告信息。不能在类的static成员或static块中使用this。
this使用方法:
this.data 调用当前对象的属性
this.func() 调用当前对象的方法
this() 调用当前对象的其他构造方法
如果一个类不想被继承,我们可以设置为final修饰
final int a=10; //常量 不可以被修改
final class A 代表整个类 不可以被继承