zoukankan      html  css  js  c++  java
  • Java面向对象——三大特性

    Java面向对象——三大特性

    摘要:本文主要介绍了面型对象的三大特性。

    封装

    什么是封装

    封装,就是指一个类隐藏了对象的属性和实现细节,对自己的数据和方法进行访问权限控制,只允许某些类和对象进行访问和使用,其他的类不能进行访问和使用。

    封装是面向对象的特征之一,是对象和类概念的主要特性。简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。

    在一个类的内部,某些代码或某些数据是私有的,不能被外界访问。通过这种方式,类对内部数据提供了不同级别的保护,以防止类中的私有数据被外部程序窃取和改动。

    有什么好处

    良好的封装能够减少耦合。耦合,指的是模块间的关联程度,封装可以使模块变得更加独立,降低了耦合度。

    封装后的类,在类内部可以自由修改代码,不会影响外部的代码。

    对类的成员进行精确的访问控制。

    访问控制

    public:公共访问权限。属性可以被所有类和对象访问,没有进行封装。

    private:私有访问权限。只能在这个类中被访问,对属性和方法进行彻底的封装。

    protected:继承访问权限。可以被子类访问,封装的不彻底。

    一般来说,如果类中的某个属性不是公有的,而外部程序又需要访问,那么可以提供一个公有的方法,外部程序可以通过调用方法实现对该属性的间接访问。

    继承

    什么是继承

    继承,指的是子类可以获得父类的属性和方法,并且可以在不影响父类代码的前提下,在子类里面对继承的方法进行改写,扩展添加父类里面没有的方法。

    Java的继承是单继承,一个父类只能有一个子类,一个子类也只能有一个父类。

    有什么好处

    子类可以直接使用父类的属性和方法,不需要重复编写代码,提高了代码的可重用性。

    特点

    Object类是所有类的基类,所有的类都直接或间接继承了Object类,所以具备Object类的方法。

    子类不可以继承父类的构造方法,但子类必须调用父类的构造方法。

    子类的构造方法中默认调用父类的无参构造,如果父类没有无参构造,报编译错误。

    子类用super调用父类的有参构造方法。

    多态

    什么是多态

    多态,是指一个方法或一个对象具备多种表现形式。

    多态的体现

    多态主要变现在两个方面:引用多态和方法多态。

    引用多态,即对象的向上转型,父类的引用指向子类的对象。

    方法多态,即子类重写了父类的方法,子类在调用该方法的时候调用的是子类重写的方法,父类在调用该方法的时候调用的是父类的方法。

    如果我们在子类中扩展了一个父类没有的方法,就不能通过父类的引用创建的子类对象来调用该方法。

    引用类型转换

    向上类型转换(自动类型转换): Animal animal = new Dog(); 。

    小类型转换成大类型。

    子类创建的实例指向父类的引用

    向下类型转换(强制类型转换): Dog dog = (Dog) animal; 。

    大类型转换成小类型,有可能导致溢出。

    子类的引用指向父类的引用

    如果将子类的引用指向父类创建的实例 Dog dog = (Dog) new Animal(); ,在编译时不会报错,但是在运行时会报错。

    instanceof运算符

    使用instanceof运算符来解决引用对象的类型,避免类型转换的安全性问题。

    它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

    在写程序的时候,如果要进行类型转换,我们最好使用instanceof运算符来判断它左边的对象是否是它右边的类的实例,再进行强制转换。

    注意

    继承是多态实现的基础。

  • 相关阅读:
    javascript基础学习(三)
    javascript基础学习(二)
    javascript基础学习(一)
    php base64_encode()函数
    php fsockopen()
    php parse_url()函数
    SPL 文件处理
    CSS position的absolute和relative的解析[转]
    HTML demo
    php PDO setFetchMode
  • 原文地址:https://www.cnblogs.com/shamao/p/10240668.html
Copyright © 2011-2022 走看看