封装
封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
封装是面向对象编程语言对客观世界的模拟,客观世界的Field都是被隐藏在对象内部的,外界无法直接操作和修改。
封装的目的
1、隐藏类的实现细节。 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限
制对Field的不合理访问。
2、可进行数据检查,从而有利于保证对象信息的完整性。
3、便于修改,提高代码的可维护性
为了实现良好的封装,需要从两个方面考虑
1、将对象的Field和实现细节隐藏起来,不允许对外部直接访问。
2、把方法暴露出来,让方法来控制对这些Field进行安全的访问和操作。
注意:封装最常见的就是get规方法和set方法
继承
继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Java的继承具有单继承的特点,每个子类只有一个直接父类。
子类一旦继承了父类,就可以获得父类的全部Field和方法,但java的子类不能获得父类的构造器;虽然说子类只能有一个直接父类,但子类可以拥有无限多个间接父类。
继承的实现
Java的继承通过extends关键字实现,实现继承的类被称为子类,被继承的类被称为父类,有的也称其为基类、超类。
java里子类继承父类的语法格式如下:
修饰符 class SubClass extends SuperClass{
// 类定义部分
}
多态
什么是多态 ?
当把一个子类对象直接赋给父类引用变量时,例如:SuperClass sc = new SubClass();,
这个sc引用变量的编译时类型是SuperClass,而运行时类型是SubClass,当运行时调用该引用变量的方法时,其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这可能出现:
相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态。
字段不具备多态性
与方法不同的是,对象的Field不具备多态性。
java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可以能出现所谓的多态。