Java三大特性之多态
针对一个抽象的对象进行编程,不再是具体的对象,抽象意味着灵活,不具体到某个对象,而是泛指一类对象
抽象:非具体的
多态的基础是继承,必须对父类进行编程,同时可以任意赋值为子类
抽象类:
父类方法一定会被子类覆盖,父类方法是没有意义的方法,所以父类方法只需要声明即可,不需要做具体的实现,没有必要
只声明,不实现的方法就叫做抽象方法
一旦某个类中存在一个抽象方法,则该类必须声明为抽象类
static 关键字
普通方法的调用必须依赖于对象,必须通过对象调用方法,没有 static 关键字修饰的方法
静态方法的调用不需要依赖于对象,用 static 修饰的方法
static 表示静态或全局
没有被 static 修饰的方法叫做实例方法,变量叫做实例变量,内存中有多份,一个对象对应一份
被 static 修饰的方法叫做静态方法,变量叫做静态变量,内存中只有一份,多个对象共享这一份资源
接口:
极度抽象的抽象类,抽象到极致的抽象类,抽象类中不存在任何一个非抽象方法,全部都是抽象方法
把全部都是抽象方法的抽象类简化为接口类型
接口本质上就是一个抽象类
继承 - 抽象 - 接口
父类的抽象方法,一旦被子类继承,子类就必须实现这些方法,除非子类也是一个抽象类
接口和实现类本质上就是一对父子类,接口是父类,实现类是子类
单继承,多实现
继承只能继承一个父类
实现可以同时实现多个接口
抽象类
语法上允许抽象类没有抽象方法
但是抽象方法所在的类必须是抽象类
面向接口编程
将程序的业务逻辑进行分离,以接口的形式去对接不同的业务模块,实现代码的解耦合
Controller Service
Object 类
Object 是所有 Java 类的共同父类,根
为什么要设计这么一个父类
代码的复用性
不同的 Java 类必然存在一些相同的方法,共性
对象的内存地址
对象是否相等
对象的输出
方法
所有的 Java 类中都会存在一些相同的方法
把共性方法都写到父类中,让所有的类都成为这个父类的子类,通过继承实现代码的复用性
在继承父类方法的基础上,根据具体的业务需求对父类进行重写,覆盖父类方法的逻辑,从而实现个性化的操作
Object 类中的很多方法都是需要重写的
1、toString
2、equals
3、hashCode