CoreJava
1.面试题:什么是封装、继承、多态
-
封装
在类中定义属性的时候,一般需要把属性隐藏起来。如果外界需要访问这个属性,那么就提供公共方法对其访问。封装的好处:
- 提高代码的安全性,重要信息可以私有化,不对外暴露
- 提高代码的复用性,常用的代码或者功能封装到方法中,可以在其他地方反复调用
- 封装代码的实现细节,便于修改内部代码,提高可维护性
- 简化外部的调用,便于调用者使用
-
继承
继承描述的是事物之间的所属关系,这种关系是: is-a 的关系继承的好处:
- 提高代码的复用性。
- 类与类之间产生了关系(is a),这是使用多态特性的前提。
-
多态
同种类型的不同对象,调用相同的方法时,表现形式不同(执行结果不同)多态的前提:
- 子类继承父类
类实现接口,也是一种特殊的形式的继承,多态也可以体现在类和接口的关系中
- 子类重写父类中的方法
- 父类的引用指向子类对象
多态的好处:
(引用:https://blog.csdn.net/hellosweet1/article/details/81320384)-
可替换性,多态对一存在的代码具有可替代性
-
可扩充性:增加的子类不影响已存在的类的特性的运行和操作
-
接口性:多态时超类通过方法签名向子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的
-
灵活性:在应用中体现了灵活多样的操作,提高了使用的效率
-
简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要
- 子类继承父类
SQL
1.笔试题:给出成绩表tb_score,字段:name,course,score,用一条sql语句查询每门课都大于80分的学生姓名。
方法1:找出科目没有达到80分的姓名,然后过滤
select distinct name
from tb_score
where name not in (
select distinct name
from tb_score