java基础--3.面向对象-4.继承

来源:互联网 发布:留言回复数据库设计 编辑:程序博客网 时间:2024/06/11 20:42

1      继承

1.1  继承的基本概念

1.1.1  作用

         让类与类之间产生关系,子父类关系(描述类和类之间的关系)

 

         Java只支持单继承,不支持多继承。(一个儿子只能有一个爹);Java支持多层继承(继承体系)(儿子,老子,爷爷);如果想用这个体系的所有功能用最底层的类创建对象;如果想看这个体系的共性功能,看最顶层的类

 

 

1.1.2  好处与弊端

继承的好处

         a:提高了代码的复用性(降低类和类之间的重复代码)

         b:提高了代码的维护性(降低对象和对象之间的代码重复使用静态变量)

         c:让类与类之间产生了关系,是多态的前提

 

:继承的弊端

         类的耦合性增强了。

 

1.1.3  继承原则

         子类只能继承父类所有非私有的成员(成员方法和成员变量)

         子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法;

         不要为了部分功能而去继承

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

private只能在类内部,

deafault类只可以被同一个包内部的类访问。

protected任意子类内部被访问,

public类可以在任意地方被访问,

 

 

1.2  继承中的关系—隐藏,重写

1.2.1  成员变量的关系

         父类成员变量被隐藏

         对于子类可以从父类继承的成员变量,只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。

 

1.2.2  构造方法的关系

 

         子类构造方法默认自带super()—调用父类无参构造函数,可省略,重写被覆盖

         子类中所有的构造方法默认都会访问父类中空参数的构造方法

为什么呢?

         因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。    

 

父类没有无参构造方法,子类怎么办?(了解)

         super解决

         this解决

注意事项

         *super(…)或者this(….)必须出现在构造方法的第一条语句上

 

 

 

 

1.2.3  实例方法的关系—方法重写

         什么是方法重写

         重写:子父类出现了一模一样的方法(注意:返回值类型可以是子父类,)

 

         方法重写的应用:

         当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法。这样,即沿袭了父类的功能,又定义了子类特有的内容。

         间接隐藏了父类的方法(super.方法可调用)

 

注意事项

         a:父类中私有方法不能被重写

                   因为父类私有方法子类根本就无法继承

         b:子类重写父类方法时,访问权限不能更低

                   最好就一致

         c:父类静态方法,子类也必须通过静态方法进行重写

                   其实这个算不上方法重写,但是现象确实如此,至于为什么算不上方法重写,静态只能覆盖静态

         d:子类重写父类方法的时候,最好声明一模一样。

 

1.2.4  静态方法—没有

         静态方法和类相关,算不上重写

 

2      super和this

2.1  引入super:--调用父类(被隐藏的)

 

 

2.2  this和super的区别和应用

 

3      instanceof 关键字

3.1  概念

    比较运算符:

    该关键字用来判断一个对象是否是指定类的对象,返回的结果是boolea类型。

      

3.2  应用

 

4      引入final:--拒绝继承

4.1  概述

         final最终

final的变量的值不能够被改变。final方法不允许子类重写。final类不能被继承

 

4.2  修饰特点

 

修饰局部变量—了解

4.3  修饰变量的初始化时机

         显示初始化

 

在对象构造完毕前即可

 

 

0 0
原创粉丝点击