Java三大特性,封装、继承、多态

    xiaoxiao2021-03-25  164

             作为面向对象的语言,Java本身的特性支持着它作为面向对象编程语言的作用。Java有三大特性,封装、继承、多态,今天总结一下。

             1、类,抽象,对象

              抽象,对一类事物的属性和行为进行总结归纳。事物抽象,为类。类是事物的模板,类建立(new)实例,为对象。

              类有成员变量和成员函数,成员变量为类的属性,成员函数(方法)为类的行为。成员变量,存储在堆内存中,与创建的对象生命周期一致。通过类的行为可以操作类的属性,完成信息传递和业务操作等。

             抽象类,使用abstract关键字,只能用做继承,抽象类可以包含非abstract方法,但是包含抽象方法的一定是抽象类。抽象类的子类,要重写所以抽象方法。

            接口,使用interface关键字,只包含抽象方法,允许创建者确定方法名、参数列表和返回类型,但没有方法体。接口需使用implements关键字实现,提高了代码复用性。

            内部类,只能通过访问外部类来访问,内部类可以使用外部类的所有属性和方法。

            2、方法

            方法包括返回类型、方法名、参数。参数类型不同,则方法不同。

            构造器方法是一种特殊的方法,是隐式static方法。方法名与类名相同,参数为类的零到多个属性,没有返回值类型。构造器用于创建对象时初始化对象。每个类都有构造器,如果没有显示声明则有默认的无参构造器。

           构造器参数的不同,则为不同的构造器,这是方法的重载(overload)。

           子类继承父类,会对公有方法(非private)进行重新定义。方法返回类型,方法名称,参数列表都相同,这是方法的重写(override)。

           static方法,静态方法,不能调用非静态方法。可以通过类本身直接调用静态方法,不必创建对象。

           3、封装

           类的属性私有化,只有通过类的公有方法才能访问,是封装的一种形式。封装是为了数据安全,为了程序的高内聚、低耦合。

           封装尽可能的隐藏程序的内部属性和业务实现细节,提供公有的方法给外部,将接口与实现分离,便于重用,也是一种程序的模块化体现。

           4、继承

           extends,单继承,多重继承;interface,接口,多种实现,弥补单继承的缺点。

           继承,子类继承父类的所有属性和方法,构造方法除外。

           方法的覆盖(override,重写),只发生在子类里(不是子类不存在重写)。子类重写的方法的访问控制权限不低于父类,抛出的异常不多于父类。重写可以自己完善方法里的业务逻辑和数据的处理。

           5、多态

           方法的重写(子类继承父类)、重载(一个类里面参数类型不同)与动态连接构成Java的多态性。

           绑定:将一个方法调用同一个方法的主题关联起来,称为绑定。简单理解,给方法找到使用者(对象),关联在一起。

           动态绑定:也称后期绑定、运行时绑定,在运行时根据对象的类型进行绑定。Java采用的是后期绑定,除了static和final方法外,其他所有的方法都是动态绑定的,是自动发生的。

            对象多态性主要是指子类和父类对象的相互转换关系。

           a) 向上类型转换(upcast):将子类型转换为父类型,将子类对象的引用给父类。对于向上类型转换,不需要显式指定。

           b) 向下类型转换(downcast):将父类型转换为子类型,将父类对象的引用给子类。对于向下类型转换,必须要显式指定(必须要使用强制类型转换)。

           构造器调用顺序:1)父类构造器;2)按声明顺序调用成员的初始化方法;3)子类构造器

           注:部分摘自《Thinking in Java》。

    转载请注明原文地址: https://ju.6miu.com/read-2973.html

    最新回复(0)