您的位置:首页 > 编程语言 > Java开发

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

2017-03-08 15:41 501 查看
         作为面向对象的语言,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》。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 封装 继承 多态