一、javaSE (九)final、多态、抽象类、接口

1:final关键字(掌握)

         (1)是最终的意思,可以修饰类,方法,变量。

         (2)特点:

                   A:它修饰的类,不能被继承

                   B:它修饰的方法,不能被重写

                   C:它修饰的变量,是一个常量

         (3)面试相关:

                   A:局部变量:

                            a:基本类型 值不发生改变

                            b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的

                   B:初始化时机

                            a:只能初始化一次

                            b:常见的给值

                                     定义的时候

                                     构造方法中

2:多态(掌握)

         (1)同一个对象在不同时刻体现出来的不同状态

         (2)多态的前提:

                   A:有继承或者实现关系

                   B:有方法重写

                   C:有父类或者父接口引用指向子类对象

 

                   多态的分类:

                            a:具体多态

                                     class Fu{}

                                     class Zi ectends Fu{}

                                     Fu f = new Zi();

                            b:抽象类多态

                                     abstract class Fu{}

                                     class Zi extends Fu{}

 

                                     Fu f = new Zi();

                            c:接口多态

                                     interface Fu{}

                                     class Zi implements Fu{}

 

                                     Fu f = new Zi();

         (3)多态中的成员访问特点

                   A:成员变量

                            编译看左边,运行看右边

                   B:构造方法

                            子类的构造都会默认访问父类的构造

                   C:成员方法

                            编译看左边,运行看右边

                   D:静态方法

                            编译看左边,运行看右边

         (4)多态的好处

                   A:提高代码的维护性(继承体现)

                   B:提高代码的扩展性(多态体现)

         (5)多态的弊端

                   父不能使用子的特有功能

 

                   现象:

                            子可以当做父使用,父不能当做子使用

         (6)多态中的转型

                   A:向上转型

                            从子到父

                   B:向下转型

                            从父到子

3:抽象类(掌握)

         (1)把多个共性的东西提取到一个类中,这是继承的做法

                   但是呢,这多个共性的东西,在有些时候,方法声明一样,但是方法体

                   也就是说,方法声明一样,但是每个具体的对象在具体实现的时候内容不一样

                   所以,我们在定义这些共性的方法的时候,就不能给出具体的方法体

                   而一个没有具体的方法体的方法是抽象的方法

                   在一个类中如果有抽象方法,该类必须定义为抽象类

         (2)抽象类的特点

                   A:抽象类和抽象方法必须用关键亲 abstract絛饰

                   B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类

                   C:抽象类不能实例化

                   D:抽象类的子类

                            a:是一个抽象类

                            b:是一个具体类。这个类必须重写抽象类中的所有抽象方法

 

 

         (3)抽象类的成员特点:

                   A:成员变量

                            有变量,有常量

                   B:构造方法

                            有构造方法

                   C:成员方法

                            有抽象,有非抽象

4:接口(掌握)

         (1)接口的特点

                   A:接口用关键字 interface修饰

                   B:类实现接口用imp1ements修饰

                            c1ass类名 implements接口名{}

                   C:接口不能实例化

                   D:接口的实现类

                            a:是一个抽象类

                            b:是一个具体类,这个类必须重写接旦中的所有抽象方法

         (2)接口的成员特点

                   A:成员变量

                            只能是常量

                            默认修饰符: publis static fina1

                   B:构造方法

                            没有构造方法

                   C:成员方法

                            只能是抽象的

                            默认修饰符: public abstract

         (3)类与类,类与接口,接口与接口

                   A:类与类

                            继承关系,只能单继承,可以多层继承

                   B:类与接口

                            实现关系,可以单实现,也可以多实现

                            还可以在继承一个类的同时,实现多个接旦

                   C:接口与接口

                            继承关系,可以单继承,也可以多继承

         (4)抽象类和接口的区别(自己补齐)

                   A:成员区别

                            抽象类

                            接口

                   B:关系区别

                            类与类

                            类与接口:

                            接口与接口:

                   C:设计理念不同

                            抽象类:is a,抽象类中定义的是共性功能

                            接口:1ike a,接口中定义的是扩展功能

posted @ 2018-01-12 15:54  秋心无波  阅读(118)  评论(0编辑  收藏  举报