/**
*
* @author jack
* 接口中每一个方法也是隐式抽象的;
* 接口中的方法会被隐式的指定为 public abstract(只能是 public abstract,其他修饰符都会报错);
* 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法;
* 接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字;
*
* 接口中可以含有变量;
* 接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用 private 修饰会报编译错误);
*
*在接口的多继承中extends关键字只需要使用一次,在其后跟着继承接口;
* 接口的声明语法格式如下:
* [可见度] interface 接口名称 [extends 其他的接口名] {
* // 声明变量
* // 抽象方法
* }
*
*标记接口是没有任何方法和属性的接口
*没有任何方法的接口被称为标记接口。标记接口主要用于以下两种目的:
*1.建立一个公共的父接口;
*2.向一个类添加数据类型,他只是告诉JVM,继承于这个接口的CLASS需要序列化处理
*
*/
public interface Human {
public void eat();
public void move();
}
/**
*
* @author jack
* 当类实现接口的时候,类要实现接口中所有的方法。否则,类必须声明为抽象的类
* 类使用implements关键字实现接口。在类声明中,Implements关键字放在class声明后面。
* 实现一个接口的语法,可以使用这个公式
* ...implements 接口名称[, 其他接口名称, 其他接口名称..., ...] ...
*
* 注意以下规则:
* 类在实现接口的方法时,不能抛出强制性异常,只能在接口中,或者继承接口的抽象类中抛出该强制性异常;
* 类在重写方法时要保持一致的方法名,并且应该保持相同或者相兼容的返回值类型;
* 如果实现接口的类是抽象类,那么就没必要实现该接口的方法;
*
* 一个类可以同时实现多个接口;
* 一个类只能继承一个类,但是能实现多个接口;
*
*/
public class Chinese implements Human {
private String name;
private String colorOfSkin;
private String colorOfHair;
public Chinese() {
super();
}
public Chinese(String name, String colorOfSkin, String colorOfHair) {
super();
this.name = name;
this.colorOfSkin = colorOfSkin;
this.colorOfHair = colorOfHair;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getColorOfSkin() {
return colorOfSkin;
}
public void setColorOfSkin(String colorOfSkin) {
this.colorOfSkin = colorOfSkin;
}
public String getColorOfHair() {
return colorOfHair;
}
public void setColorOfHair(String colorOfHair) {
this.colorOfHair = colorOfHair;
}
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("吸……嚼……喝……");
}
@Override
public void move() {
// TODO Auto-generated method stub
System.out.println("走……跑……跳……");
}
}