Java高频面试题(面向对象)

Java高频面试题(面向对象)

面向对象

2.1 类与对象的区别

类是一类事物的整体描述,是一个模板,是对象的抽象,是具有相同行为和特征的对象的描述

对象具体的一个事物,是类的实例化,万事万物皆对象

2.2 面向对象的特征是什么?

面向对象的三大特征是:封装、继承、多态

封装:是将类的实现细节以及属性进行封装,也就是私有化,之对外提供特定的方法来进行对象的调用、初始化、赋值。因为外界无法知道其具体细节,所以保证 了代码的安全性。

继承:继承是子类使用extends关键字来继承父类,子类可以继承使用父类的非私有化的属性和方法(也就是非private关键字修饰的),提高了代码的复用性,如 果父类所提供的属性与方法难以满足子类的使用情景,那么子类在不修改父类的情况下可以自己定义,提高了代码的灵活性。

多态:同一种行为对不同事物会展现出不同的表现,也就是说同一个方法在不同子类中有不同的实现,提高了代码的扩展性,对于类来说多态就是向上转型与向下 转型。对于方法来说,就是重写与重载。

2.3 public private protected default(默认)的区别

public:在任何地方都可以被调用

protected:在子类、同包、同类都可以被调用

default:在同包、同类都可以被调用

private:在同类下可以被调用

2.4 方法的重写与重载有什么去呗

方法的重载

在同一个类中,方法名相同,参数列表不同(参数的顺序、参数的个数、参数的属性),与其他因素无关。

方法的重写

重写是存在与子父类中,当父类所提供的方法不适合子类所使用的情况,子类可以将父类的此方法进行重写

重写存在父子类,方法名、参数列表相同,方法返回类型只能为父类该方法返回值的本类或子类,抛出异常类型只能为父类该方法返回值的本类或子类,但是注意子类重写的权限修饰符要大于父类方法的权限符。

2.5 什么是构造函数

构造函数简单来说就是进行类初始化的函数,构造函数没有返回值(也没有void),构造函数是我们在new一个对象的实例化类时自动调用的。在每一个类都会有一个构造函数,当我们没有明确声明构造函数的时候,类默认为无参构造器,但是当我们声明构造函数之后,默认的无参构造器就会失效。一个类可以重载任意个构造函数(只要符合重载定义就可以),但是重载是无法被继承的。

2.6 this和super有什么区别

this

this关键字就是代表当前类的引用,我们可以使用this来调用本类的其他构造器,但是this所调用的构造器必须放在首行。this也可以调用本类的属性,当方法中形参与本类属性重名之后就可以使用this.属性来进行区分。如果通过this调

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值