Java访问修饰符,覆盖

一、访问修饰符


修饰符
范围
继承描述
备注1
备注2

private

本类内部 一定不能继承

私有的




其实是继承了,但不能访问



default

本类+同包的类



不一定能继承

若不写修饰符时则是默认的 default

但default不能显式地修饰成员,只能采用不写的方式

若父子类同包则能继承;

若父子类不同包则不能继承

protected 本类+同包+不同包的子类 一定能继承 受保护的 同包,不同包的父子类都能继承
public 公开的所有的类 一定能继承 公开的



二、属性和方法覆盖


方法覆盖:

   (1) 方法覆盖的条件是父子类方法名,参数表,返回类型全部相同才能覆盖

   (2) 父子类的方法覆盖是指当父类引用指向子类对象时,会执行子类的覆盖方法

   (3) 子类方法修饰符的范围要比父类的宽才能覆盖

   (4) 子类方法抛出的异常不能超过父类的异常才能覆盖


属性覆盖:

Java访问修饰符,覆盖

   (1) 创建子类对象 ClassB cb=new ClassB(),会先创建父类ClassA对象,子类对象创建后,

       则必然有2个实例变量a,一个是父类的a=20,另一个是子类自己的a=10。

       当我们用this.a访问时访问的是子类自己的实例变量a=10,这就是子类属性遮盖父类属性。

   (2) 当子类中的属性与父类属性同名时,则子类属性会遮盖父类属性

       一定想要在子类中访问继承父类的同名属性,使用super.属性名来访问

       访问父类继承的方法而非子类覆盖的方法也用super.方法名来调用



Java访问修饰符,覆盖

上一篇:Hyper-v学习(七),虚拟磁盘


下一篇:subversion 1.8英文说明文档