关于final关键字和抽象类,接口

final主要用于修饰类,方法以及属性

 

当用于修饰类时,则这个类不能被子类继承,换而言之该类没有子类

 

当用于修饰方法时,该方法也是不能被复写的

 

当用于修饰属性时,同理属性值不能被更改

 

抽象类,当存在抽象方法时,该类就是抽象类,需要加abstract修饰符,另外该抽象方法必须需要被继承它的子类所重写。

 

接口可以多实现,可以理解成一个特殊的类,只是这个类里面是由常量以及公共的抽象方法组成的

Interface demo{
   public static final int AGE = 10;
   public abstract void tell()
   {}

}

Interface demo2{
  public abstract void say()
 {}
}

//一个接口可以继承多个接口,弥补了单继承的不足
interface demo3 extends demo,demo1{
}

class M{
    public abstract void printf(){} 
}
class A extends M implements demo,demo2
{
   //必须复写tell方法
   public void tell(){}
   
   public void say(){}
}

class go
{
   public static void main(String[] args)
  {
      A a=new a();
      a.tell();
      a.say();
      a.printf();
  }

}

一个接口可以实现单继承超类,但是可以多继承接口,可以弥补单继承的不足

一个类可以继承多个接口,单继承超类

接口和抽象类的区别:

继承接口必须复写里面所有的方法,并且接口是没有私有变量或者方法的,但是抽象类可以有自己的私有变量或者方法,另外只必须复写其中的抽象方法,其他可以看程序的需要适当复写。

posted @ 2015-09-16 23:02  Hersch  阅读(497)  评论(0编辑  收藏  举报