复习《Java程序设计教程》这本书,发现以前对于继承的认识有错误。
继承
继承的处理过程发生在编译之前,所以相当于将父类的声明内容加入到了子类的声明中,然后根据访问控制模式进行访问。之前理解的public,protect成员域能在子类中访问,private不能还是太片面了。(java针对于包的访问控制权限设置了默认模式,需要考虑到,另外c++没有默认模式)
多态
在覆盖中会使用到super关键字:
super.父类型成员域;//解决同名变量的屏蔽问题
super.父类型成员方法();//解决覆盖的成员方法的屏蔽问题
super();//调用父类构造方法
封装性
- 非内部类的访问控制方式有两种:public,default
- 类的成员的访问控制方式有四种:public,protected,default,private
类成员的访问控制模式及其允许访问的范围
访问控制模式 | 在同一个类内 | 在同一个包内 | 子类 | 所有类 |
---|---|---|---|---|
public | 允许访问 | 允许访问 | 允许访问 | 允许访问 |
protected | 允许访问 | 允许访问 | 允许访问 | |
default | 允许访问 | 允许访问 | ||
private | 允许访问 |