JAVA 01

static: 静态变量 和静态方法 可直接通过类名调用,一个类共用一个静态变量。

    静态方法不能调用非静态变量,静态方法。

    非静态方法可以调用静态变量、静态方法。

--------------------------------------------------------------------------------------------------

instanceof:   

    void test(Animal animal)

    {

      if(animal instanceof Tiger)

        ......

    }

--------------------------------------------------------------------------------------------------

final: final申明的类没有子类,申明的方法不能被子类继承,申明的变量值不能被改变!

final class ClassName extends SuperClassName{

  final int i;

  final void tt(){}// final可以省略不写

}

--------------------------------------------------------------------------------------------------

abstract:  抽象类不能实例化,但可以有变量。如 对:ClassName cn;  错: ClassName cn = new ClassName() 

修饰符 abstract ClassName{

    void abstractMethod();  //要在子类中实现

}

--------------------------------------------------------------------------------------------------

interface: 接口中的变量默认添加 public static final 修饰符,可省略不写。方法是public的!抽象类可以不实现interface,但是,子类必须全部实现。

接口的作用已是创建常量组,比如星期。

public/protected interface InterfaceName{

  int i = 5;// 等同于public static final int i  = 5;

  返回值类型 methodName(par); //等同于public 返回值类型 methodName(par);

}

class ClassName implements InterfaceName, InterfaceName2,...

{}

接口可以继承, public/protected interface IterfaceName extends InterfaceName2{}

接口不能实例化,但可以申明变量。 错:InterfaceName in = new InterfaceName(); 对:InterfaceName in = new ClassName();//这个ClassName必须实现这个接口。

 

接口和抽象类是非常相像的,但它们之间是有区别的,主要区别有以下几方面。

‰ 一个类可以实现众多个接口,但是只能继承一个抽象类。可以说接口是取消程序语

言中的多继承机制的一个衍生物,但它不完全如此。
‰ 抽象类可以有非抽象方法,即可以有已经实现的方法,继承它的子类可以对方法进
行覆写;而接口中定义的方法必须全部为抽象方法。
‰ 在抽象类中定义的方法,它们的修饰符可以是 public、 protected、 private,也可以是
默认值;但是在接口中定义的方法全是 public 的。
‰ 抽象类可以有构造函数,接口不能。两者都不能实例化,但是都能通过它们来存放
子类对象或是实现类的对象。可以说它们都可以实现多态。

 

posted on 2016-02-11 13:12  supaa  阅读(132)  评论(0)    收藏  举报

导航