Java学习日记 week3 面向对象3 抽象类 接口 向上向下转型 final

一、抽象类、方法(abstract)

  有抽象方法的类只能定义能抽象类

  抽象类不能实例化,及不能用new来实例化抽象类。

  抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。

  抽象方法必须被子类实现(重写)。

 

  抽象类定义:

  abstract class A {

  abstract returnType method(参数列表);//抽象方法不能有方法体,并且需要在子类中重写

  }

  class sonOfAbstract extends A {

  @override

  public returnType(同上) method(参数列表同上){//方法体}

  }

    需要注意的是抽象方法不能定义在非抽象类;

二、接口(interface)

  接口可以理解为一种标准,接口中没有实际的可执行代码,不能定义非抽象方法。

  通过实现此接口的类来发挥作用(提供了一种书写方法的标准,规范代码,方便多态的实现)。

  不能定义变量,可以定义常量且均为(public static final修饰)。

  不能生成实例对象。

  接口的定义、实现:

  public interface A{

    int PI = 3.14;//默认所有属性均为 public static final 修饰;

    returnType method(参数列表);//默认所有方法均为 public abstract  修饰;

  }

  接口使用:

  class B implement A{  //所有实现了接口的非抽象类必须重写接口中的全部抽象方法!

    @override

    returnType method(参数列表){

      //实现方法体

    }

  }

三、向上/向下转型

  向上转型:当一个子类/实现类继承一个父类/接口时,通过子类声明的变量来调用父类的方法、属性就会自动发生向上转型。

  向下转型:当需要使用一个父类/接口声明的变量来调用其子类/实现类中方法或属性是就需要通过向下转型来实现。

        向下转型的方式为: (子类/实现类类名)父类/接口名;

  java中的多态就是通过向上向下转型来实现的。

  

posted @ 2017-04-23 10:47  Z-o-Y  阅读(242)  评论(0编辑  收藏  举报