一.抽象类(abstract):
1.抽象类必须用abstract修饰符来定义,抽象方法也必须用abstract修饰符来定义。
2.抽象类不能被实力化,也就是不能用new关键字去产生对象。
3.抽象方法只需声明,不需实现。
4.含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才被实力化,否则这个子类还是个抽象类;
二.接口(interface)
接口是特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现;
接口中的变量默认是public static final 标识的,所以接口中的变量就是全局静态常量;
public interface Runner
{
int ID = 1;//这里是public static final int ID = 1;
void run();
}
interface Animail extends Runner
{
void breathe();
}
class Fish implements Animal
{
public void run()
{
System.out.println("aaaaa");
}
public void breathe()
{
System.out.println("bbbb");
}
}
一个类可以在继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前;
class Student extends Person implements Runner
{
......
public void run()
{
System.out.println("ddddddd");
}
.......
}
interface Flyer{
void fly();
}
class Student extends Person implements Runner,Flyer
{
public void run()
{
System.out.println("ddddddd");
}
public void fly()
{
System.out.println("eeeee");
}
}