面向对象

tech2022-08-17  151

文章目录

一、面向对象二、基础知识1、重载(Overload)和重写(Override)的区别?2、接口和抽象类有什么区别? 三、相关面试题Q1:面向对象和面向过程的区别?Q2:Java语言有哪些特点?Q3:java的应用场景?

一、面向对象

1、面向对象

面向对象: 是一种程序设计思想。程序设计实质是将现实中的事物抽取出来,描述成一系列计算机事件的过程。把具有共性的事物封装成一个个整体进行描述,这种思想称之为面向对象。


2、三大特性:抽象—— 九九合一

抽象就是从大量的实体中抽取出共有的属性和行为,从而形成一般化概念的过程。


3、三大特性:封装 —— 自己的秘密不给别人看

封装就是隐藏对象的属性和实现细节,仅对外提供公共访问的方式。 优点: 提高代码的复用性。


4、三大特性:继承 —— 爸爸的东西,就是我的

继承就是从已有类中派生出新的类,新的类拥有已有类的属性和行为,并可以扩展自己的功能。或者说将事物的共性抽取出来定义成一个父类,让后来具有多样化的子类继承父类。 优点: 做到了代码复用。 引入多态: 让类与类之间产生关系,有了关系才有多态的实现。


5、三大特性:多态 —— 兄弟姐妹各所其长

多态就是通过父类的引用调用子类对象时,会自动执行该子类重写后的版本。 实现: 多态是通过动态绑定实现的。 优点: 提高了程序的扩展性。 缺陷: 只能使用父类的引用访问父类已有的方法,无法访问子类特有方法。


二、基础知识

1、重载(Overload)和重写(Override)的区别?

都是实现多态的方式,区别在于重载实现的是编译时的多态性,而重写实现的是运行时的多态性。

重载:是在一个类里面,方法名字相同,而参数不同。与返回类型无关。 补充:方法能够在同一个类中或者在一个子类中被重载)

重写:是存在子父之间的关系,子类里定义的方法与父类里定义的方法具有以下规则。 ①两同:方法名,参数列表与父类相同。 ②两小:返回值,异常类型小于父类。 ③一大:访问权限大于等于父类。

构造器是否能被重写?

构造器Constructor不能被继承、与类名相同,因此不能重写Override,但可以被重载Overload。

2、接口和抽象类有什么区别?

(1)实现关键字:抽象类的子类使用extends来继承。接口必须使用implements来实现接口 (2)构造函数: 抽象类有。接口没有 (3)main方法: 抽象类有main方法。接口不能有main方法 (4)实现数量: 只能继承一个抽象类。可以实现多个接口, (5)访问修饰符: 抽象类的方法可以是任意访问修饰符。接口中的方法默认使用public修饰符。jdk1.8接口可以有静态方法和默认方法。jdk1.9接口可以有私有方法。

三、相关面试题

Q1:面向对象和面向过程的区别?

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源。 缺点:没有面向对象易维护、复用、扩展。

面向对象

优点:易维护、复用、扩展。由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活和维护。 缺点:性能比面向过程低。

Q2:Java语言有哪些特点?

(1)面向对象(封装,继承,多态); (2)跨平台语言(JVM实现跨平台); (3)安全,可靠; (4)支持多线程,网络编程; (5)编译与解释并存;

Q3:java的应用场景?

Android软件应用,web网站开发,嵌入式领域,Hadoop大数据技术,科学应用(安全)。

最新回复(0)