Java基础学习总结(三)—— 面向对象特征(封装|继承|多态)

一、封装性

1、含义

将对象的状态信息(属性)隐藏在对象内部,不允许外部程序直接访问对象的内部信息。而是通过该类所提供的方法来实现对内部信息的操作和访问。

2、权限修饰符

通过定义,我们知道要想把对象的属性隐藏在对象内部,就需要限定它的权限,所以要用到权限修饰符。
Java提供了4个访问控制级别,从大到小分别为:
public—>protected—>缺省(default)—>private

修饰符 类内部 同一个包 子类 任何地方
private
(缺省)
protected
public

二、继承性

1、特点

Java继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类(基类、超类)。

2、语法格式

修饰符 class SubClass extends SuperClass{
//类定义部分
}

SubClass 为子类,SuperClass为父类

3、注意点

  1. 子类继承父类后,父类中声明的属性、方法,子类就可以获取到。
  2. 当父类中有私有的属性或方法时,子类同样可以获取到,只是由于封装性的设计,使得子类不可以直接调用。
  3. 子类除了通过继承获取父类的结构之外,还可以定义自己特有的部分。
  4. extends:子类是对父类功能的“扩展”,子类不是父类的子集。
  5. Java中类的继承性是单继承,即一个类只能继承一个父类,但一个父类可以有多个子类。

三、多态性

1、多态性的表现

  • 方法的重载与重写
  • 子类对象的多态性

2、使用的前提

  • 要有继承关系
  • 要有方法的重写

3、格式

Person p = new Man();
(Man继承于Person)
注意点:
1. 编译时,认为p是Person类型的,故只能执行Person里才有的结构,即Man里特有的结构不能调用。
2. 子类对象的多态性,并不适用于属性。

4、向上(下)转型

  1. 向上转型
    Person p = new Man();
  2. 向下转型
    Man m = (Man)p;
    向下转型要使用强转符()
  3. 为了不报ClassCastException(类型转换异常),最好在向下转换之前,进行判断:instanceof
if (p instanceof Man){
    Man m = (Man)p;
}

四、方法的重写vs重载

重写(override)与重载(overload)的区别

  1. 重载
    ①在同一个类中。
    ②方法名必须相同。
    ③方法的参数列表不同(参数个数不同或参数类型不同)
  2. 重写
    (前提:在继承的基础上,子类在获取了父类的结构之后,可以对父类中同名的方法进行“重构”。)
    ①方法的返回值,方法名,形参列表相同。
    ②权限修饰符的级别不小于父类中同名的方法。
    ③子类方法的异常类型不大于父类的。
    ④两个方法(子类和父类)要同为static或同为非static。

猜你喜欢

转载自blog.csdn.net/wq_1995/article/details/77478796
今日推荐