Java面向对象的基本特征二

一、封装

  1. 概念:就是使类中的成员变量都是private,但是又提供public方法访问这些成员变量。这样就实现了隐藏类中的成员变量,从而确保了数据的安全性;

  2. 实例:     

      private String name;

 

      public String getName() {      用于读取变量数据

        return name;

      }

 

      public void setName(String name) {   用于设置变量数据

        this.name = name;

      }

  注意:命名这些方法时,使用 get 和 set 加上变量名(变量名首字母要大写);

 

二、多态

  1. 分类:

      ①  静态多态:实现的方式是方法的重载;

      ②  动态多态:实现方式是重写父类的方法;

  注意:我们说的多态,一般就指的是动态多态。

 

  2. 引用数据的转型(语法与基本数据转型一样):

      ①  向上转型:从子类向父类转,可自动实现;

      ②  向下转型:从父类向子类转,需强制转换;

  3. instantof 关键字:

      用于判断 instantof 前面的对象是否是 instantof 后面的对象的实例。(是返回 true ,不是返回 false)

  

三、抽象

  1. 关键字:abstract

  2. 抽象类:

      abstract 声明的抽象类,不能被实例化。所以需要要有子类才能体现其作用。

  3. 抽象方法:

      abstract 声明的抽象放法,没有方法主体,只能出现抽象类中,并且在子类中要被实现才可以(抽象子类可以不用实现)。

 

四、接口

  1.概念:就是一种更为特殊的抽象。在接口中的所有方法都是抽象方法,所有的方法都不提供具体的实现。需要其他的类来实现其中所有定义的方法。

  2.接口与类异同:

    同:

      ① 可以有任意数量的方法;

      ② 保存为以".java "为后缀名的文件,接口名必须与文件名保持一致;

      ③ 编译后的文件是后缀名为“.class”的文件;

      ④ 在包中的接口,其相应的字节码文件必须放置在和包名相匹配的一个目录中;

    异:

      ① 接口不能被实例化;

      ② 接口不包含任何构造器;

      ③ 接口中的所有方法都是抽象的;

      ④ 接口中不能包含实例化的成员变量。唯一可以出现在接口中的成员变量必须是同时声明为static和final(公有静态常量);

      ⑤ 接口不能被一个类继承,只能被一个类实现;

      ⑥ 一个接口能够继承多个接口;

  3. 接口的声明:

    语法:     

      public interface 接口名 {
        // 任意数量的final,static成员变量
        // 任意数量的抽象方法声明
      }

    性质:

      ① 接口默认就是抽象的。所以在声明时,不需要使用关键字 abstract;

      ② 接口中的每一个方法都是抽象的。所以在声明时,也不需要使用关键字 abstract;

      ③ 接口中的方法一般都是使用 public ,所以 public 也可以省略;

  4. 接口的实现:

    关键字:implements;

    语法:

      public  class  类名  [extends  父类名]  implements   接口名 {}

      注意:可以一次实现多个接口,有多个接口名时由逗号隔开,实现接口的类(抽象类除外)必须实现接口中的所有方法;

 

posted on 2015-04-12 15:47  ren.ren  阅读(217)  评论(0编辑  收藏  举报

导航