面向对象特征:继承、多态、封装、抽象
一、继承:
继承是根据已有类创建新类的机制。已有类被称为父类(基类),新类称为子类。子类拥有父类的方法和属性,也有自己特有的方法和属性,子类可以重写父类的方法。
- 子类只能继承父类的非私有成员变量与方法 ,子类中不能访问私有成员变量和方法,但是子类对象的确包含父类的私有成员
- 子类不能继承父类的构造函数,但是可以通过super关键字去访问父类构造函数
- 类只能单继承,接口支持多继承
- final修饰的类不能被继承,如:String
- 加载顺序:父类static修饰的静态代码块>>子类static修饰的静态代码块>>父类构造器>>子类构造器
- 子类重写父类方法是需要注意:
- 方法名,参数表一定和父类中的相同,返回类型相同,或者是父类返回类型的子类。
- 访问权限一定不低于父类的实例方法
- 抛出的异常一定是父类方法抛出的异常相同,或者是父类抛出异常的子类。
- static修饰的方法可以被继承,但是不能重写。因为静态方法可以直接使用类调用,如果子类定义了相同的静态方法则父类的方法会被隐藏。
二、多态
多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,因为执行的实例不同得到不同的响应。
- 多态有三要素:
- 要有继承关系
- 要有子类重写父类成员方法
- 要有父类数据类型引用至子类
- 多态中的重写是不能够重写成员变量及satic修饰的成员变量或方法,它只能重写非静态方法(多态是运行时动态绑定的,static是在编译时随类一起被静态绑定的)
三、封装
封装就是将自己的数据隐藏起来,只对外提供特定访问权限的方法。
- 封装就是影藏对象内部的属性和具体的实现细节,对外提供的方法有特点的访问权限,提高了数据的安全性。
- 将对象的属性和方法结合形成一个整体,方便重用。并且达到了高内聚,低耦合的效果。
四、抽象
抽象就是将一类对象的共同特征总结出构造类的过程。
- 抽象分为数据抽象和行为抽象,分别对应抽象出来的类中的属性和方法。
- 抽象只关注对象的属性和行为,不关注具体细节。