面试总结:OOP

OOP:

面向对象编程思想,Java是一门面向对象的编程语言,变量、方法都是属于对象的,需要通过对象来调用。

OOP有三大特性:封装、继承、多态

封装

私有化成员变量的细节,只对外提供获取的方法,如用private修饰成员变量,用public修饰getter方法。

继承

子类继承父类,获得父类的非私有成员变量和方法。
子类继承抽象类或接口,需要实现抽象方法,或重写方法。
接口和抽象类的区别:
接口更倾向于用于制定标准,体现在接口中的变量只能由public final static修饰,首先为什么是public static,因为接口可以多继承,为了区分多个接口出现的同名变量(InterfaceA.a或InterfaceB.a),所以是public static;为什么是final呢,因为接口用于制定标准,灵活性放在子类中来实现。
抽象类则是一类事物的集合,抽象出他们共有的变量和方法。抽象类只能单继承,可以没有抽象方法。

抽象类可以被实例化(接口不行):

抽象类有构造方法,而接口没有,有构造方法才可以被实例化。实例化抽象类不是直接new,直接new编译不通过,而是由Java的类加载机制来实例化,即加载子类时,在调用子类的构造方法之前,会调用super()构造方法来实例化父类。

JDK8接口中方法用default修饰则表示该方法有默认实现,无需子类实现(子类可以不实现由default修饰的接口方法)。

多态

父类对象的引用指向子类对象实例,引用(四大引用下节再将)在栈中,对象在堆区。如B继承A,A是父类(接口),B是子类:

A a = new B();

显然,调用父类引用的方法时,若父类中没有该方法则报错;父类中有,则会先去调用子类中的重写方法,若子类未重写则调用父类的方法。

那么使用多态的必要条件就是继承+重写父类的方法+父类引用指向子类对象。

多态的好处:

灵活性和可拓展性:如B中的方法功能不够用了,我现在新建了类C来继承A并重写A中的方法,那么代码就只需要变动很小的一部分,即A a = new C();
其他代码无需变动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值