java方法不会覆盖或实现超类型的方法_java后端面试题:Java基础

1、解释一下什么是面向对象?面向对象和面向过程的区别?

面向对象是一种基于面向过程的编程思想,是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想。由执行者变成指挥者,在现实生活中任何物体都可以归为一类事物,而每一个个人都是一类事物的实例。面向对象的编程是以对象为中心,以消息为驱动。

区别:

(1)编程思路不同:面向过程以实现功能的函数开发为主,而面向对象首先要抽象出类、属性以及方法,然后通过实例化类、执行方法来完成功能。

(2)封装性:都具有封装性,但是面向过程封装的是功能,而面向对象封装的是数据和功能。

(3)面向对象具有继承性和多态性,但是面向过程没有继承性和多态性,所以面向对象的优势更加明显。

2、面向对象的三大特性?分别解释一下?

(1)封装:通常认为封装是把数据和操作数据的方法封装起来,对数据的访问只能通过已定义的接口。

(2)继承:继承是从已有类得到继承的信息创建新类的过程。提供继承信息的类称为父类(超类/基类),得到继承信息的被称为子类(派生类)。

(3)多态:分为编译时多态(方法重装)和运行时多态(方法重写)。要实现多态需要做两件事:一是子类继承父类并重写父类中的方法,二是父类引用子类对象(比如User user = new Student()),这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为。

关于继承的几点补充:

(1)子类拥有父类对象的所有属性和方法(包括私有属性和私有方法),但是父类中的私有属性和私有方法子类无法访问,只是拥有。因为在一个子类

你可能感兴趣的:(java方法不会覆盖或实现超类型的方法_java后端面试题:Java基础)