final:最终,修饰符,修饰类、函数和变量。
1.被final修饰的类不可以被继承(为了避免被继承和被子类覆写的功能)
2.被final修饰的方法,不能被覆写。
3.被final的变量是一个常量,只能被赋值一次,既可以修饰成员变量也可以修饰局部变量。
(常量所有字母都大写,每个单词之间用 _ 隔开,可高代码的可读性)
4.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
抽象abstract :(功能定义——功能主体)
抽象的特点:1.抽象方法一定定义在抽象类中
2.抽象类、方法都必须被abstract关键字修饰
3.抽象类不可以用 new 创建对象,因为调用抽象方法没有意义。
4.抽象类中的方法要被使用必须由子类覆写所有的抽象方法后,建立子类的对象调用(如果只是覆写一部分,那么他还是抽象类)
模板方法设计:在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的地方时,这时就将不确定的部分暴露出去,由该类的子类完成。
接口:当抽象类中的方法都是抽象方法,那么该类可以通过接口的形式表现出来。
接口的格式:1.接口的常见定义:常量、抽象方法
2.接口成员都有固定的修饰符:常量 public static final 方法 public abstract
(接口中的成员都是public的)
3.implement 实现关系(接口可以被类多实现,它是对类的多继承的转换)
接口的特点:1.接口是对外暴露的规则
2.接口是程序的功能扩展
3.可以用来多实现
4.类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口
5.接口和接口之间可以有继承关系(有一定的条件)
多态:
多态的体现:1.可以理解为事物存在的多种体现形态(重载和覆写是函数多态性的体现)
2.父类的引用指向了自己子类对象
多态的好处:提高了代码的扩展性和维护性
多态的前提:必须类与类之间有关系,要么继承要么实现(通常还要存在覆盖)
多态的弊端:只能使用父类的引用访问父类中的成员,不能使用子类中特有的功能。(强制将父类的引用转化成子类类型)
多态自始自终都是子类对象在做着变化。
a instanceof Car 判断引用是否是该类
多态共同操作很多对象。
多态中:1.成员函数在多态调用时,编译看左边,运行看右边
2.成员变量都参考左边
3.对于静态成员函数,看引用型变量所属的类
(用对象来运行和用类来运行)(动态绑定和静态绑定)
这个图很经典,他提供了一种思维,一用降低耦合性的思想。利用了接口和多态、覆写等思想使程序可读性和扩张型大大提高。我觉得老师讲的很精彩。本来应该昨天晚上写的,后来看完视屏很高心,就给忘了,今早补上。