JAVA学习笔记-05-继承

继承: extends

1.提高代码的复用性

2.让类与类之间产生了关系。有了这个关系,才有了多态的特性

注意:千万不要为了获取其他类的功能,简化代码而继承;必须是类与类之间有所属关系才可以继承。

JAVA中只支持单继承,而不继承多继承。因为多继承容易带来安全隐患。当多个父类中定义了相同的功能,当功能内容不同时,子类对象不确定运行哪一个。

JAVA支持多层继承:简单来说就是a继承b,b继承c。这就是一个继承体系

如果想要使用一个继承体系中的功能,那就要先查阅体系父类的描述,因为父类中定义的是体系中共性功能。通过了解共性功能就可以知道该体系的基本功能。

在具体调研时,要创建最子类的对象。因为有可能父类不能创建对象,或者是创建子类对象可以使用更多的功能。包括基本的和所有的 

当多个类中出现相同功能,但是功能主体不同,这时可以向上抽取,这时只抽取功能定义,而不抽取功能主体。这时方法的内部没有功能主体。

这时我们要用abstract来标识方法。如: abstract void student();

抽象:看不懂

1.抽象方法一定在抽象类中。

2.抽象方法和抽象类都必须被abstract关键字修饰

3.抽象类不可以用new创建对象。因为调用抽象方法没意义。

4抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象所用。如果子类只覆盖了部分抽象方法,那么这个类还是一个抽象方法

 

聚集:谁里面有谁就是聚集

子父类出现后,类成员的特点:

父类的东西,子类都可以调用

类中的成员:

1.变量:如果子类出现非私有的同名成员变量时,子类要访问本类中的变量,要用this。子类要访问父类中的同名变量,用super。super的使用和this的使用几乎一致。this 代表子类的引用。super代表父类的引用

2.函数:当子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容。如同父类的函数被覆盖意义。这种情况时函数的的另一个特性:重写(覆盖)

3.构造函数:

super()调用的是父类构造函数,this()调用的是本类的构造函数

在对子类的对象进行初始化时,父类的构造函数也会运行。因为子类的构造函数默认第一行有一条隐式的语句 super(). super()会访问父类的中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super().

final关键字:最终的意思

1.final作为修饰符,可以修饰类,变量,函数。

2.被final修饰的类不可以被继承。为了避免被继承,被子类复写功能,就在类前面加个final

3.被final修饰的方法不可以被复写

4.被final修饰的变量是一个常量,只能赋值一次,既可以修饰成员变量。又可以修饰局部变量。

5.内部类定义在类中的局部位置时,只能访问该局部被final修饰的局部变量

当描述事物时,一些数据的出现是固定的。为了增强阅读性。都给这些值取个名字方便阅读。而这个值不需要改变。所以用final修饰应用

常量的书写格式:所以字母都大写,如果有多个单词组成,单词之间用_连接

 

this代表本类对象的引用,super代表父类对象的引用

覆盖:子类必须知道父类的功能

1.子类覆盖父类,必须保证子类的权限大于等于父类权限,才可以覆盖,否则编译失败

2.静态只能覆盖静态

重载:只看同名函数的参数列表

重写:子父类方法要一模一样

 

接口:

初期可以理解为一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口形式来表达。

格式:interface{}.    class定义类,interface定义接口

定义接口时,格式特点:

1。接口中常见定义:常量。抽象方法

2.接口总的成员都有固定修饰:常量 public static final    方法  public abstrcat

接口中的成员都是public的。

接口不可以创建对象,因为接口有抽象方法

类与类之间是继承关系,类与接口之间关系为实现。关键字为implements

接口可以被类多实现。也就是一个类可以实现多个接口。接口中的方法没有实现主体,所以可以多实现。

一个类继承一个类后还可以实现多个接口。

接口与接口之间为继承关系。接口存在多继承

posted on 2019-04-12 15:28  搬家小蜜蜂  阅读(138)  评论(0编辑  收藏  举报

导航