面试 -- 基础篇 -- 面向对象


1. 面向对象的特征

三大特征:封装、继承、多态。

封装:把客观事物封装成抽象的类,这个类可以把自己的数据和方法暴露给可信的类和对象操作,同时对不信任的类或对象进行信息隐藏。

继承:可以让一个类获得另一个类的属性和方法,在无需重新编写原来类的情况下,获得原来类的所有功能,并进行扩展。这是一个从一般到特殊的过程,被继承的类称之为父类,超类,继承后的类称之为子类,派生类。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。实现方式分为实现继承和接口继承。

多态:(开始以为是重载,其实重载与多态完全不一样)一个类实例的相同方法在不同的情形下,具有不同的表现形式。多态是通过继承来实现的,多个子类重写了同一个父类的方法,用这些子类来实例化父类,那么这些子类实例虽然具有相同的形式,但是调用这些实例的相同方法时,执行的操作却不一样。   多态提供了对同一对象进行差异化的处理方式,子类通过多态重写父类的方法来体现子类的差异性。

2. 面向对象的5大基本原则

(1) 单一职责原则SRP(Single Responsibility Principle)

一个类的功能要单一,不要包罗万象。就比如一个人,分配的工作不要太多,否则一天到晚虽然忙忙碌碌,但效率不高。

(2) 开闭原则OCP(Open-Close Principle)

一个模块或一个类要开放扩展,关闭修改。要求在设计之初,要将公共部分抽象出来。

(3) 替换原则LSP(the Liskov Substitution Principle)

子类应该可以替代父类,并可以出现在父类任何出现的地方。

(4) 依赖倒置原则DIP(Dependency Inversion Principle)

具体依赖抽象,上层依赖下层。

(5) 接口分离原则ISP(Interface Segregation Principle)

模块间要通过抽象接口隔离开来,而不是通过具体的类强耦合。

3. 重载和重写的区别

重载:是指一个类中允许存在方法名相同,但参数类型、个数或顺序不相同的方法。

重写:是指子类对父类方法的覆盖重写,是基于继承的,表达了JAVA的多态性。

两者的区别还在于编译器何时去寻找所要调用的具体方法。对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法,这称为“早绑定”或“静态绑定”;而对于多态,只有等到方法调用的那一刻,编译器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”。

4. 接口与抽象类的区别


·抽象类和接口有什么区别

·说说反射的用途及实现

·说说自定义注解的场景及实现

· HTTP请求的 GET与 POST方式的区别

· session与 cookie区别

· session分布式处理

· JDBC流程

· MVC设计思想

equals与 ==的区别

equals 是值比较,==是对象的引用比较,比较是地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值