Java入门2.2---面向对象的特征(继承性)

一、继承

1.子类继承父类以后,父类中声明的属性、方法,子类可以获取到。

明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接调用罢了。

子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分。

extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。

2.java中的继承性只支持单继承,一个类只能继承一个父类。反之,一个父类可以有多高子类。

3.子父类是相对的概念。

二、方法的重写(override)

1.前提:有子类继承父类

2.子类继承父类以后,若父类的方法对子类不适用那么子类可以对父类的方法重写(override或overwrite)。

3.重写的规则

  1. 要求子类方法的“返回值类型  方法名  (参数列表)”与父类的方法一样;
  2. 子类方法的修饰符不能小于父类方法的修饰符;
  3. 若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。
  4. 子父类的方法必须同为static或同为非static的。

4.方法的重载和重写的区别?

  1. 重载:
    1. “两同一不同”,同一个类中,同一个方法名,不同的参数列表。注:方法的重载与方法的返回值无关。
    2. 构造器是可以重载的
  2. 重写:前提是在继承的基础之上,子类在获取了父类的结构之后,可以对父类中同名的方法进行“重构”
    1. 方法的返回值、方法名、形参列表相同;
    2. 权限修饰符不小于父类的同名方法;
    3. 子类方法的异常类型不大于父类的;
    4. 两个方法要同为static或同为非static。  

三、四种访问权限修饰符

Java权限修饰符public、protected、private置于类的成员定义前,用来限定对象对该类对象成员的访问权限。

修饰符 类内部 同一个包 子类 任何地方
private      
default    
protected  
public

对于class的权限修饰只可以用public和default

  1. public类可以在任意地方被访问;
  2. default类只可以被同一个包内部的类访问。

四、关键字super

super:可以用来修饰属性、方法、构造器

super的追溯不限于直接父类。

super和this的用法很像,this代表本类对象的引用,super代表父类的内存空间的标识。

(1)属性

  当子类与父类中有同名的属性时,可以通过“super.此属性”显式的调用父类中声明的属性。若想调用子类的同名的属性"this.此属性"。

(2)方法

  当子类重写父类的方法以后,在子类中若想再显式的调用父类的被重写的方法,就需要使用“super.方法

(3)构造器

super修饰构造器,通过在子类中使用“super(形参列表)”来显示的调用父类中指定的构造器。

  1. 在构造器内部,“super(形参列表)”必须要声明在首行!!!
  2. 在构造器内部:“this(形参列表)”或“super(形参列表)”只能出现一个!!!
  3. 在构造器中,不显示的调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参的构造器!!!

建议:设计一个类时,尽量要提供一个空参的构造器!!!

五、子类对象实例化过程

 

 

posted @ 2020-06-01 21:46  nxf_rabbit75  阅读(106)  评论(0)    收藏  举报