面试题01- 面向对象

面试题01- 面向对象

一、问题

Q:什么是面向对象? 谈谈你对面向对象的理解

什么是面向对象?

这里需要区分,什么是面向对象,什么又是面向过程?

面向过程:注重事情的每一个步骤及顺序

面向对象:注重事情有哪些参与者(对象),以及参与者需要做什么

举个例子

洗衣机洗衣服

1.面向过程: 1、打开洗衣机-> 2、放衣服 -> 3、放洗衣液 -> 4、洗衣服

2.面向对象:

​ 对象 : 人 – 打开洗衣机、放衣服、放洗衣液

​ 对象 : 洗衣机 – 洗衣服

总结:面向过程比较直接高效、而面向对象更易于复用、扩展和维护。

二、解答

面向对象有三个特性: 封装、继承、多态

封装: 封装的意义在于,明确标识出允许外部使用的所有成员函数和数据项。、

​ 内部细节对外部调用透明,外部调用无需修改或者关心内部实现。//实现内部安全

​ 1、javabean 的属性私有,提供get/set对外访问,因为属性的赋值或者获取逻辑只能由javabean本身决定。而不能由外部任意修改。

private String name;
public void setName(String name){
    
    
	this.name = "举个栗子,给name加前缀"+name;
}

​ 2、orm 框架

​ 操作数据库,我们不需要关心链接是如何建立的,SQL是如何执行的,只需要引入mybatis,调用方法即可。

继承:继承基类的方法,并做出自己的改变或扩展

​ 子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需要扩展自己个性化的

多态:基于对象所属类的不同,外部对于同一个方法的调用,实际执行的逻辑不同。

​ 继承,方法重写,父类引用指向子类对象

父类类型 变量名 = new 子类对象;
变量名.方法名();

father s = new son;
s.method();

​ 无法调用子类特有的功能。(子类独有的方法,无法调用)

​ 调用的方法父类中必须有的,也就是说 方法重写。

解释一下

father:

​ say(); //打印我是父类

son:

​ say();//打印我是子类

调用 s.say();

​ 打印,我是子类


猜你喜欢

转载自blog.csdn.net/qq_43098690/article/details/120029202
今日推荐