package v1;
interface Animal{
void shout(); //接口中只声明方法
void breatch();
void name();
}
abstract class abstractclaaa implements Animal{
private String name; //抽象类是一个类可以有数据
public abstractclaaa(){ //可以有构造方法
name="动物"; //完成对象初始化
}
public void name() { //可以有实现的方法,抽象类中只实现了这一个方法
System.out.println("我是:"+name);
}
public abstract void shout(); //将抽象类作为基类,剩余的方法交给派生类实现
public abstract void breatch(); //可以声明方法
}
class Cat extends abstractclaaa{ //派生类具体实现
public Cat(){
super(); //创建对象,调构造,super位于第一句,调用基类构造,完成对基类数据的初始化
}
@Override //对基类的方法进行重写,重写:返回值类型,参数,方法名必须一致,访问权限大于等于基类的方法
public void shout() {
System.out.println("喵喵喵···");
}
@Override
public void breatch() {
// TODO Auto-generated method stub
System.out.println("哈哈哈···");
}
}
public class testclass { //测试类
public static void main(String[] args) {
Animal a=new Cat(); //创建对象,创建接口引用去引用派生类对象。也称为向上转型
a.shout(); //对象调用方法,实现输出
a.breatch();
a.name();
}
}