//如果抽象类的类体里的方法全部都是抽象方法,可以把把这个类定义为接口
//换言之,类体里全部都是抽象方法,可以把这个类定义为接口.
interface Runer//接口的定义,接口里只包含常量和抽象方法.
{
String texing="动时要振动";//接口里的常量默认是用public static final标志的
void run();//默认的访问权限是public.
String jump();
}
interface Animals extends Runer//一个新的接口可以继承另一个接口
{
void breathe();//在继承的基础上,有新的矿展.动物不仅能动,还能呼吸.
}
//实现接口抽象方法的方式 注意联想实现抽象类里的抽象方法的方式.
abstract class Fish implements Animals//实现接口抽象方法的定义
{//如果省掉abstract, Fish类类体必须覆盖Animals里的所有抽象方法,否则报错.
public void run()//public不能省,因为上面都是public型,子类访问父类,访问权限不能比父类低
{
System.out.println("Fish is swiming");
}
public String jump()
{
System.out.println("Fish靠尾巴跳动");
return "wooo";
}
public void breathe()
{
System.out.println("Fish呼出的是汽泡");
}
}
//比较:实现抽象类的抽象方法与实现接口的抽象方法所采取的方式.
//实现抽象类的抽象方法,是通过abstract class 子类名 extends 父类名 -----格式
//实现接口的抽象方法,是通过abstract class 类名a implements 类名b ------格式
//两者相同点:都要声明抽象类abstract class 类名,不同点,前者用关键字extends
//后者用implements
简洁代码:
interface Runer
{
String texing="动时要振动";
void run();
String jump();
}
interface Flyer
{
int ID=20;
void fly();
}
interface Animals extends Runer
{
void breathe();
}
abstract class Bird implements Runer,Flyer//实现多个接口
{
public void run() {}
}
abstract class Fish implements Animals//实现接口
{
public void run()
{
System.out.println("Fish is swiming");
}
public String jump()
{
System.out.println("Fish靠尾巴跳动");
return "wooo";
}
public void breathe()
{
System.out.println("Fish呼出的是汽泡");
}
}
//class person {}
abstract class student extends person implements Runer,Flyer//继承一个类的同时,实现多个接口.
{
public void run() {}
public String jump(){return "ee";}
}