1.封装:属性是描述一类事物的特征,方法是描述一类事物的操作。封装就是把属于同一类事物的共性(属性或方法)抽象为一个公共类,方便使用。
概念:封装也称数据隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起(所有的零件组合成为一个整体,即实体类) 封装定义程序如何引用对象的数据,实体类中可以写某个属性的get、set方法,有些属性不想让外界看到,可以不写get方法
好处:降低耦合度、类内部的结构可以自由修改、可以对成员变量更精确的控制、隐藏信息,实现细节
2.继承:是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力
特性:子类拥有父类中的非private方法、子类拥有自己的数据属性和方法、子类可以用自己的方式实现父类的方法、既可单继承可以多重继承
好处:降低耦合度、可复用性加强
名词: extends 关键字 该类只能单继承,即一个子类只能有一个父类。
implements 关键字 该类可以理解为变向的多继承,可以在实现类中实现多个接口
super 可以通过super实现对父类成员的访问,即用来引用当前对象的父类
this 指向自己的引用
final 用在类中,该类为不能继承的类;用在方法中,该方法不能被重写;用在属性中,该属性不会改变,一直为final修饰的属性
方法重写:是两个类之间的发生的关系,子类重写父类的方法,但方法名,参数类型,参数个数必须相同
方法重载:是单个类中方法名相同,参数的类型、参数个数或返回值类型不一样(多态)
3.多态:只允许不同类的对象对同一消息作出的响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)
好处:一个接口,多种实现
条件:继承、重写、父类引用指向子类对象
名词:向上转型 父 a = new 子(); a是父类指向子类的引用,由于子类继承父类,所以可以子类自动向上转型为父,所以a是可以指向子类实例对象的,但向上转型会出现数据丢失现象
总结:指向子类的父类引用由于向上转型,它只能访问父类中的方法和属性,而对于子类中存在的父类不存在的方法,该引用是不能使用的,尽管是重载方法,若子类重写了父类的某些方法,调用该方法的时候,必定是使用了子类中定义的这些方法(动态连接,动态调用)