一、Java面试基础之面向对象的特征:继承、封装和多态(原创实例)

本文详细讲解了Java中的面向对象三大特性:继承、封装和多态。介绍了继承的概念、特点,如单继承、方法重写、final与super关键字的应用;封装的原理、优点,以及访问修饰符的作用;多态的引用多态和方法多态,以及抽象类与接口的区别。同时,提供原创代码示例帮助理解。
摘要由CSDN通过智能技术生成

#一、继承
***1、概念:***继承是类与类的一种关系,是一种“is a”的关系。比如“狗”继承“动物”,这里动物类是狗类的父类或者基类,狗类是动物类的子类或者派生类。

2、java中的继承是单继承,即一个类只有一个父类

3、优点:子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用

4、语法规则,只要在子类加上extends关键字继承相应的父类就可以了
class 子类 extends 父类
栗子:class Dog extends Animal{…}

***5、方法的重写:***子类不满意父类的方法时,可以编写自己的继承方法,这种方式称为方法的重写,并用@override注解来标注该方法为重写方法,该注解带有识别功能,能辨识你的方法是否为重写方法,否则在编译阶段就会报错
重载和重写的区别:

方法重载:在同一个类中处理不同数据的多个相同方法名的多态手段。
方法重写:相对继承而言,子类中对父类已经存在的方法进行区别化的修改。

6、final关键字
final有“最终的”含义:

1)final 修饰类,则该类不允许被继承
2)final 修饰方法,则该方法不允许被覆盖(重写)
3)final 修饰属性,则该类的该属性不会进行隐式的初始化,所以 该final 属性的初始化属性必须有值,或在构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值!),且初始化之后就不能改了,只能赋值一次
4)final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量

######7、super关键字
在对象的内部使用可代表父类对象
1)访问父类属性:super.fatherProperty
2)访问父类方法:super.fatherMethod()
super的应用:
1)首先我们知道子类的构造的过程当中必须调用父类的构造方法。其实这个过程已经隐式地使用了我们的super关键字
2)这是因为如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。那么如果自己用super关键字在子类里调用父类的构造方法,则必须在子类的构造方法中的第一行
3)注意:如果子类构造方法中既没有显示调用父类的构造方法,而父类没有无参的构造方法,则编译出错。
4)如果父类没有显示声明父类的无参的构造方法,系统会自动生成一个无参构造方法,但是如果声明了一个有参构造方法而没有声明无参构造方法,这时系统不会自动默认生成一个无参构造方法,此时称为父类没有无参构造方法。

######8、Object类
Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。
Object类中的方法,适合所有子类

#二、封装
1、封装概念:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
2、封装优点:
只能通过规定的方法访问数据。
隐藏类的实例细节,方便修改和实现。
3、封装的实现步骤
属性可见性设置为private–>创建用于读写的getter/setter方法–>在getter/setter方法中加入属性控制语句
4、注意:对封装的属性不一定要通过get/set方法,其他方法也可以对封装的属性进行操作。当然最好使用get/set方法,比较标准。
######5、访问修饰符(访问权限最大范围)
private:本类
default:包内
protected:包内、子类
public:包内、子类、其它
######6、this关键字
1)this关键字代表当前对象
this.属性 操作当前对象的属性
this.方法 调用当前对象的方法。
2)封装对象的属性的时候,经常会使用this关键字
3)当getter和setter函数参数名和成员函数名重合的时候,可以使

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值