2019-08-01

一、继承

类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更美好的建模。

提高代码的复用性。

关键字:extends  扩展;子类的父类的扩展

子类继承父类的成员变量和成员方法,但不继承父类的构造方法;

Java中只有单继承;

Java中的多继承,可以通过接口来实现;

—如果定义一个类,没有调用extends,则它的父类是:java.lang.Object

不能被继承的父类成员:

private成员(成员变量,成员方法);

子类与父类不在同包,使用默认访问权限的成员;

构造方法

  本类  同包 子类  所有类

public    √        √ √ √

Protected √ √ √ ×

默认 √ √ × ×

Private √ × × ×

二、方法的重写

—在子类中可以根据需要对从基类中继承来的方法进行重写。

—重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。

—重写方法不能使用比被重写方法更严格的访问权限。

为什么需要重写父类的方法?

-父类实现的方法不符合子类的逻辑;

-父类已经实现80%,但是子类又必须要使用剩下的20%,所以可以重写父类方法,在方法内用super关键字调用父类的方法,再去完成剩下的20%工作

三、super关键字

--super是直接父类对象的引用;

--可以通过super来访问父类中被子类覆盖的方法或属性;

--普通方法中:没有顺序限制,可以随便调用

--构造函数中:任何类的构造函数中,若是构造函数的第一行代码没有显式的调用super;那么Java默认都会调用super();作为父类的初始函数。

四、final关键字

--final可以用来修饰变量,方法,类

-用final来修饰一个变量,则该变量就变成了一个常量

-用final来修饰一个类,则该类就不能被作为父类继承

-用final来修饰一个方法,则该方法就不能被重写

五、Object类

Object类是所有Java类的根基类;

六、抽象类

--是一种模板模式。抽象类为所有子类提供了一个通用模板,子类可以在这个模板基础上进行扩展

为什么要使用抽象类?

—通过抽象类,可以避免子类设计的随意性。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用;

class前加abstract该类就成为了一个抽象类

1,抽象类不能创建对象;

2,抽象类一般是一个父类,该父类没有什么存在的意义,就是用来被子类继承

3,抽象类中可以有抽象方法,也可以有非抽象方法;

4,一个类继承了一个抽象类,则该类必须要实现该抽象类中的所有抽象方法;

5,如果子类也是抽象类,则可以不实现父类的抽象方法;

6,抽象方法必须定义在抽象类中

抽象方法:

如果一个方法 每个子类实现的逻辑都不一样,则把该方法定义成抽象方法;

让每个子类去根据自己的逻辑实现该方法。

如果一个方法,每个子类实现的逻辑都一样,则该方法直接在父类中实现,子类直接调用

你可能感兴趣的:(2019-08-01)