Java-面向对象篇2

1.继承的概念

  • 面向对象的特点之一,可以实现对类的复用。可以通过以下两种方法实现
  •       a.合成/聚合关系(包含其他类):将一个类当作另一个类的属性。
  •       b.派生类:一个类继承另一个类,实现继承的类称为派生类,被继承类称为父类,基类,超类。
  • 父类的成员方法和成员变量被子类继承,但是父类的构造方法没有被继承。
  • 在Java中只支持单继承,和C++多继承不一样。

2.super关键字

  1.super可以访问父类的成员变量

  2.super可以调用父类的成员方法

  3.super可以在子类构造方法里调用父类的构造方法

  注意:super只能在成员方法和构造方法里使用,不能在static方法里使用(和this一样),

              在构造方法中使用必须放在第一行。

3.this和super关键字比较(都不能在static方法中调用)

       

4.方法覆盖

  1. 方法覆盖只存在子类和父类之间
  2. 子类覆盖父类的方法时,访问权限不能缩小,可以扩大,其他写法一样
  3. 父类的静态方法不能被子类覆盖为非静态方法

5.访问权限

   类的访问修饰符

  1. public:任何包中的类(即一切的类)都可以访问该类
  2. 默认值:同一包中的类可以访问该类

   成员的访问修饰符

  1. private:只对本类可见,对子类不可见
  2. 默认值:对同一包中的类可见
  3. protected:对同一包中的类和所有子类可见
  4. public:对一切类可见

  注意:访问成员的前提是首选能访问成员所在的类       

 6.重写和重载的比较

   

7.对象的多态性

    多态是指引用类型在不同情况下的多种形态,也可以理解为通过指向父类的指针调用不同子类中覆盖的方法

  • 一个基类的引用类型变量可以"指向"其子类的对象。
  • 一个基类的引用不可以访问其子类中新增加的成员(属性和方法)。
  • instanceof : 对象 instanceof  类名/接口   //判断该对象是否是该类/该类的子类/实现该接口。
  • 子类对象可以当作父类对象来使用称为向上转型,反之称为向下转型。

8.抽象类和抽象方法(abstract)

      抽象类(abstract修饰):任何声明为abstract的抽象类无法实例化,除非其子类全部覆盖其抽象方法,

                                     这样子类就不是抽象类,不一定要包含抽象方法,但是有抽象方法的类必须声明为抽象类。

      抽象方法(abstract修饰):没有方法体的成员方法。不可以用abstract修饰构造方法。

      抽象类的子类:1.抽象父类有抽象方法:

                              a.非抽象的子类:子类覆盖重写父类所有的抽象方法

                              b.抽象的子类:父类中的抽象方法只要有一个没有覆盖重写而继承了必须声明为abstract类

                          2.抽象父类没有抽象方法:

                              a.非抽象的子类:不用abstract修饰子类且不添加抽象方法即可(此时可以实例化)

                              b.抽象的子类:可以用abstract修饰,或者添加抽象方法再声明为抽象类。

       注意:抽象方法被可视化的修饰符修饰的只有两个即public ,protected,即除了"默认访问修饰符"

              "public","protected"修饰抽方法,其余的(private ,static ,final)不可以修饰。

9.abstract,final,static比较

     

10.接口(interface)

    接口:比抽象类还抽象的抽象类,是抽象方法和常量值的定义的集合。没有变量和方法的实现。

    接口常量:默认public static final 属性(注意:不接受其他修饰符), type name=value;

    接口方法:默认public abstract 属性(注意:不接受其他修饰符),returnType methodName (paramlist)

    接口的实现类(implements):实现接口的类必须覆盖所有接口的方法,否则成为抽象类。可实现多个接口

    接口的好处:

  • 解决了Java的单一继承带来的局限性,也解决了C++多重继承带来的问题,
  • 多重继承的危险会导致子类继承同一方法的不同实现。而接口里的方法都没有实现,所以多重继承的问题。
  • 通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。
  • 通过接口了解对象的交互界面,而无需了解对象所对应的类

11.抽象类和接口的比较

   

posted @ 2014-12-23 23:58  beyondbycyx  阅读(161)  评论(0编辑  收藏  举报