• 面向对象三大特征——封装、多态、接口


      一、封装

      1.封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作与访问。

      2.封装的好处:

        1).只能通过规定方法访问数据;

        2).隐藏类的实现细节;

        3).方便修改实现;

        4).方便加入控制语句。 

      3.封装的步骤:

        1).修改属性的可见性。——设为private;

        2).创建爱你共有的getter/setter方法。——用于属性的读写;

        3).在getter/setter方法中加入属性控制语句。——对属性值的合法性进行判断。

      4.使用面向对象的思想开发程序的好处:

        1).客户和软件设计开发人员之间、软件设计开发人员内部交流更加流畅;

        2).提高软件设计和开发效率。

      5.方法重载的原则(一个类中):

        1).方法名相同;

        2).参数项不同;

        3).与访问修饰符和返回值无关。

      6.方法重写的原则(不同的类中):

        1).方法名相同;

        2).参数列表相同;

        3).返回值类型相同或者是其子类;

        4).访问权限不能严于父类。

      位置 方法名 参数表 返回值 访问修饰符
    方法重写 子类 相同 相同 相同或是其子类 不能比父类更严格
    方法重载相同 同类 相同 不相同 无关 无关

      构造方法的语法:

        访问修饰符 构造方法名(此处可以指定参数){

          //初始化代码

        }

      构造方法无返回值类型,且构造方法名与类名相同。

      系统默认提供无参构造方法。当自定义构造方法后,系统不再提供无参构造方法。

      二、继承

      父类可以派生出多个子类,而子类只可以继承一个父亲。继承必须符合is-a原则。

      1.使用继承 父类的语法:

        public class 类名{

          //公共的属性和方法

        }

       子类继承父类的语法:

        访问修饰符 子类名 extends 父类名{

          //子类特有的属性和方法

        }

      2.super关键字来访问父类的成员:

        1).super只能出现在子类的方法和构造方法中;

        2).super调用构造方法是,只能是第一句;

        3).super不能访问父类的private成员。

      3.子类不能继承的父类成员:

        1).private成员;

        2).子类与父类不在同包,使用默认访问权限的成员;

        3).构造方法

      4.抽象方法(abstract):

        1).抽象方法没有方法体;

        2).抽象方法必须在抽象类里;

        3).抽象方法必须在子类中被实现,除非子类是抽象类。

       5.抽象方法父类的语法:

         public abstract class 类名 {

         }

       6.抽象类和抽象方法:

        1).抽象类不能被实例化;

        2).可以有0~多个抽象方法;

        3).非抽象类必须重写父类的所有抽象方法。

       7.final修饰符

        1).修饰的类,不能再被继承;

        2).修饰的方法,不能被子类重写;

        3).修饰的变量将变成常量,只能在初始化时进行赋值。

       访问修饰符总结:

    访问修饰符 本类 同包 子类 其他
    private     √      
    默认(friendly)     √     √    
    protected     √     √     √  
    public     √     √     √     √

     三、多态

      1.多态的概念:

        多态:同一个引用类型,使用不能的实例而执行不同操作。

      2.使用多态实现思路:

        1).编写父类;

        2).编写子类,子类重写父类方法;

        3).运行时,使用父类的类型,子类的对象。

      3.实现多台的两种方式:

        1).使用父类作为方法形参实现多态;

        2).使用父类作为方法返回值实现多态;

      4.

       1).向上转型——子类转换为父类,自动进行类型转换;

       2).向下转型——父类转换为子类,结合instanceof运算符进行强制类型转换:

       语法:

        对象名 instanceof 类或接口

        instanceof通常和强制类型转换结合使用。

      5.多态的优势:提高代码的可扩展性和可维护性。

      以上仅个人意见,如有需要补充的地方,大家及时提出,进行改正。共同学习,共同进步!

      

  • 相关阅读:
    STL容器内数据删除
    grep 同时满足多个关键字和满足任意关键字
    程序运行栈空间不足程序崩溃问题
    VS2010中设置程序以管理员身份运行
    python 包详解
    select 详解
    Hdu 1166
    CF1204C
    CF1204B
    CF1204A
  • 原文地址:https://www.cnblogs.com/yilinzi/p/dalinzi.html
Copyright © 2020-2023  润新知