java面试题整理《基础篇》一

尚学堂推出全新Java教程,针对初学者设计,通过实例讲解面向对象概念、面向过程与面向对象的区别,涵盖封装、继承与多态,以及重载与重写,适合自学者提升Java技能。

尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili

什么是面向对象?

面向对象: 生活中的一切事物都可以被称之为对象,生活中随处可见的事物就是一个对象,我们可以将这些事物的状态特征(属性)以及行为特征(方法)提取并出来,并以固定的形式表示。

面向对象VS面向过程:

面向过程更加注重每一个步骤以及执行顺序,而面向对象则会考虑事情有哪些参与者,能够做什么。

面向过程会将任务拆分为一系列步骤:(以洗衣服为例)

1、打开洗衣机

2、放衣服

3、放洗衣粉

4、清洗

5、烘干

面向对象则会拆分人和洗衣机两个对象:

人:打开洗衣机、放衣服、放洗衣粉

洗衣机:清洗、烘干

就结果而言:⾯向过程性能⽐⾯向对象⾼。 因为类调⽤时需要实例化,开销比较⼤,比较消耗资源,所以当性能是最重要的考量因素的时候,⼀般采⽤⾯向过程开发。但是,⾯向过程没有⾯向对象易维护、易复⽤、易扩展。因为⾯向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,⾯向对象性能⽐⾯向过程低。

封装、继承与多态

封装:

封装指隐藏对象的状态信息(属性),不允许外部对象直接访问对象的内部信息。但是可以提供一些可以被外界访问的方法来操作属性。通过封装,明确标识出允许外部使用的所有成员函数项,而其内部细节则对外部调用透明,外部调用者无需去关心其具体内部实现。

继承:

当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承单独的那个类即可。多个类可以称为子类,单独这个类称为父类或者超类。

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的属性或方法(对父类进行扩展),也可以拥有父类的属性和方法,并且通过自己的方法再次实现父类的方法(重写)。通过使用继承,可以快速地创建新的类,可以提高代码的重用,程序的可维护性,节省大量创建新类的时间 ,提高我们的开发效率。

Java只支持单继承,不支持多继承。一个类只能有一个父类,不可以有多个父类。Java支持多层继承(继承体系)。Java继承了父类非私有的成员变量和成员方法,但是请注意:子类是无法继承父类的构造方法的。

多态:

多态:一种事物的多种形态(多态的前提:继承、重写、向上转型),比如说所属类不同的对象,在调用其共同父类的方法时,会产生不同的执行结果。

通过多态可以提高代码的可重用性,降低模块之间的耦合度。(在Java中方法的重载和重写是实现多态的2种方式。)

重载和重写的区别?

重载:同一个类中定义了多个方法名相同而参数不同的方法,这些⽅法能够根据输⼊数据的不同,做出不同的处理。

重写:子类从父类继承的某个实例方法无法满足子类的功能需要时,需要在子类中对该实例方法进行重新实现,这样的过程称为重写,也叫做覆写、覆盖。

重载在同一个类中,方法名相同,参数不同(参数的个数、顺序、类型不同),⽅法返回值和访问修饰符可以不同。

方法重写的前提:继承,要求方法名、参数列表、返回值类型必须相同,子类的修饰符大于等于父类,抛出的异常范围⼩于等于⽗类。

重写的返回值类型如果⽅法的返回类型是void和基本数据类型,则返回值重写时不可修改。但是如果⽅法的返回值是引⽤类型,重写时是可以返回该引⽤类型的⼦类的。

构造⽅法⽆法被重写,但是可以重载,一个类中可以出现多个构造函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值