🛫 OOP的三大特征都是什么?
要想知道OOP的三大特征,首先应该知道什么是OOP,OOP就是Object Oriented Programming面向对象程序设计语言,Java就是这么一门语言。面向对象程序设计语言的三大特征是封装、继承、多态,封装说明一个类的行为属性与其他类的关系——高内聚低耦合;继承是超类对子类的扩展;多态是超类变量的引用指向子类对象。
🪂 什么是封装?
封装又叫数据隐藏,是处理对象的一个重要概念。简单来说封装就是将类的属性和行为组合在一个包中,并对对象的使用者隐藏内部的具体实现方式。实现封装的关键在于程序只能通过对象的方法与对象的数据进行交互(故又被认为是"黑盒"),无需知道对象的内部细节,这是提高重用性(其他类可以通过对象直接调用类的属性方法)和可靠性(隐藏内部细节,无法直接修改属性)的关键
除了以上优点封装还有:我们可以使用访问器和更改器对外提供一个封装字段的获取和修改方法,并且可以在更改器中使用代码完成错误检查逻辑等操作,如果单纯将字段暴露出去随意调用的话就无法完成这个操作。
🪂 什么是继承?
继承的基本思想就是可以基于一个已有的类来创建新的类,继承已存在类就可以复用这个类的属性方法,除此之外还可以在继承的基础上自定义一些新的属性和方法。继承通过extends关键字完成,一个类只能继承自一个超类,但是超类还可以继承自其他的超类,这就是间接继承。
谨记,继承之后可以在子类中可以增加字段和方法或者覆盖(重写)方法,但是继承绝不能也不会删除任何字段或者方法
🪂 什么是多态?
多态形式上就是超类的变量引用指向子类对象,于是多态的另一个要素就是两个类之间有继承关系。当使用多态实例化对象调用方法的时候,调用子类自定义的独有方法时会报错调用的超类方法被子类重写后会使用子类重写的方法
🛫 关于构造器你都知道什么?
首先是构造器的简介:构造器又被称为构造函数,要想使用对象的话,首先必须要构造对象,在构造对象的同时构造器会运行并初始化类中字段的初始状态。关于构造器我们还需要了解的是:
构造器的命名应该与类相同
每个类中能够有一个以上的构造器
构造器的参数可以是0~无数个
构造器没有返回值
千万别在构造器中定义与实例字段同名的局部变量
构造器总是伴随着new操作串一起使用来实例化对象(实例化出来的Java对象都在堆中存储,使用new实例化会返回该对象的地址)
如果在自定义类编写的时候不去定义构造器的话,编译器会默认提供一个该类的无参构造器,无参构造器没有初始化方法体的话就会初始化所有的变量成该数据对应类型的默认值,有初始化方法体就按方法体对字段进行初始化。只要是你定义了一个有参构造器的话,就不会提供默认的无参构造器,此时使用无参构造器实例化对象的话就会产生异常