每日三问
1.面向对象的思想
2.重写和重载的区别
3.mybatis的#{}和${}取值区别
一.面向对象的思想
- 面向对象的三大核心是封装,继承,多态
- 封装:将属性私有化通过get和set方法来操作访问
- 继承:将公共的部分抽取到父类,子类继承了父类的方法,这样就实现了代码的复用
- 多态:就是同样一个行为有不同的表现形式,多态性是指允许不同子类型的对象对同一消息作出不同的响应。
二.重写和重载的区别
- 重写:子类重写父类的方法,要求有相同的参数类型和返回类型。
- 重写:同一个类中重写方法,要求同名方法的参数列表不同,返回值可以相同也可以不同。
三.mybatis的#{}和${}取值区别
- #{}可以防止sql注入,${}符合不能防止sql注入。
- 原因就是#{}调用的是prepareStatement进行预编译,${}调用Statement
- prepareStatement是直接传入字符串传入的只是一个加了’'的字符,Statement是直接生成sql可以拼接sql