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();
}
}
一个接口可以实现单继承超类,但是可以多继承接口,可以弥补单继承的不足
一个类可以继承多个接口,单继承超类
接口和抽象类的区别:
继承接口必须复写里面所有的方法,并且接口是没有私有变量或者方法的,但是抽象类可以有自己的私有变量或者方法,另外只必须复写其中的抽象方法,其他可以看程序的需要适当复写。