1.什么是多态(方法重载和方法重写)
多态指的是一个对象具有多种的状态
“所有依赖静态类型来决定方法(静态分派)体现方法重载,方法名相同,方法参数不同
根据实际类型来决定方法 (动态分派)体现为方法重写,三个必要条件,子类继承父类,子类重写父类方法, 以及父类引用指向子类实例
从jvm角度,子类的方法表从指向父类方法,到指向自身重写后的方法。
2.什么是spring aop
spring
的AOP
实现原理其实很简单,就是通过动态代理实现的。如果我们为Spring
的某个bean
配置了切面,那么Spring
在创建这个bean
的时候,实际上创建的是这个bean
的一个代理对象,我们后续对bean
中方法的调用,实际上调用的是代理类重写的代理方法。而Spring
的AOP
使用了两种动态代理,分别是JDK的动态代理,以及CGLib的动态代理。
3.反射?
Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接创建对象,即使这个对象的类型在编译期是未知的。