一、封装
封装就是尽可能的隐藏对象的内部实现细节,其实就是把都西昂的属性保护隐藏起来,并且控制对象的修改以及访问的权限,访问修饰符:private
私有的 修饰属性就是
只在本类可以使用。这样的话外界是不可以直接访问属性,通过set和get方法去访问对象的私有属性,这也是外界去访问私有属性的唯一通道,方法的内部可以对数据进行检测和过滤。
二、继承
关键字 ***子类 extends 父类***
继承是发生在类与类之间的一种关系,子类继承父类,继承关系是单继承的,只能有一个父类;子类继承父类之后,子类就可以使用父类中的属性和方法,也可以定义子类独有的属性和方法。
继承的优点:
(1)减少代码量,提高了代码的复用性,又提高了代码的可扩展性
(2)使类与类之间存在继承关系,是实现多态操作的前提。
继承的特点:Java中为单继承,一个类只能由一个直接的父类,但是可以有多级的继承,属性和方法是逐级的叠加。
继承中有些东西是不可以被继承的: 也就是父类的一些东西不能被继承
1.父类中的构造方法:类中的构造方法,只负责创建本类对象,不可继承。
2.如果父类中的属性和方法被private私有的修饰,,那么子类也不能去继承。
3.父类和子类不在同一个包下,父类的属性和方法用default修饰的话,子类也不可以继承。方法的重写:
1.当父类的方法不满足与子类的需求的时候, 子类中可以定义一个和父类相同的方法。
2.方法的重写原则:
- 方法的名称,参数列表,返回值类型必须要与父类相同。
- 访问修饰符不能比父类更加的严格(也就是子类的访问修饰符的范围可以等于或者大于父类,不能比父类还小)。
- 子类覆盖了,或者说重写了父类的方法之后,调用方法的时候,优先执行的是覆盖后的子类的方法。
super关键字:
子类是可以直接访问从父类那里继承到得属性和方法得,但是当出现父类和子类的属性或者方法有重名的时候,就好比说子类重写了父类的方法,他们的方法名字是相同的,这个时候为了加以区分,再去访问,就用了super
,用super可以去调用父类的属性和方法。如果不加super去调用的话直接调用的是子类的方法,加了之后调用的就是父类的。
如果调用父类的同名属性,也是用super.属性名,访问本类的实例变量用关键字this。
super可以调用父类的构造方法: super调用父类的无参构造:一般是子类的首行省略了,super();
super(实参):调用父类的有参构造。
关键字 this和super:
这两个关键字使用在构造方法中时,都要求在首行,所以不能同时写这两个,
this表示当前对象引用,调用本类的属性,方法,本类的构造方法,包括继承的属性,方法。
super表示父类对象引用,调用父类的属性,方法,构造方法。
final关键字
使用final关键字做标识有**“最终的**”含义。
1. final 修饰类,则该类不允许被继承。
2. final 修饰方法,则该方法不允许被覆盖(重写)。
3. final 修饰属性,则该类的该属性不会进行隐式的初始化,所以 该final 属性的初始化属性必须有值,或在构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值!),且初始化之后就不能改了,只能赋值一次。
4. final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量。
Object类
Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一个类,那么这个类默认继承Object类。
Object类中的方法,适合所有子类!!!
三、多态
多态指的是对象的多种形态。
两个类中有直接或者间接的继承关系时,父类引用(变量)指向子类对象,从而产生多态。
比如: Animal a = new Dog ();
左边是父类的引用,右边是子类的对象。
应用场景:
1.使用父类作为方法形参,实现多态。
2.使用父类作为方法的返回值,实现多态。
多态的作用:
屏蔽子类间的差异
灵活,耦合度低。
1. 多态存在的前提(多态的三要素)
A.必须有子类和父类,具有继承或实现(继承)
B.子类必须重写父类的方法(重写)
C.父类的引用变量指向子类的对象(向上转型)
2. 多态的优点
A. 可替换性,多态对已经存在的代码具有可替代性
B. 可扩充性:增加的子类不影响已存在的类的特性的运行和操作
C. 接口性:多态时超类通过方法签名向子类提供了一个公共的接口,由子类来完善或者覆盖它而实现的
D. 灵活性:在应用中体现了灵活多样的操作,提高了使用的效率
E. 简化性: 多态简化对应用软件的代码的编写和修改过程,尤其在处理大量的对象的运算和操作时,这个特点尤为突出和重要。
多态中的成员特点:
成员变量:编译与运行时期都看父类! 成员方法:编译时期看父类,运行时期看子类
引用类型转换
1.向上转型(装箱)
2.向下转型(拆箱)
3.instanceof关键字