/**
* Created by liuyazhou on 2017/4/11.
*/
public interface ZooInterface1 {
//接口是公开的,不能含有私有变量或方法,
//方法只要是声明即可
void ZooInterface1Fun1();
}
/**
* Created by liuyazhou on 2017/4/10.
*/
public abstract class Animal extends Zoo{
//抽象类可以含有私有变量
private Integer animalInteger1;
//抽象类可以含有私有方法,此时要有函数体
private void Run(){
System.out.println("Run");
}
public abstract void cry();
public abstract void eat();
}
/**
* Created by liuyazhou on 2017/4/10.
*/
public class Cat extends Animal {
@Override
public void cry() {
System.out.println("猫哭...");
}
@Override
public void eat() {
}
@Override
public void zooFun1() {
System.out.println("Cat zooFun1....");
}
@Override
public void ZooInterface1Fun1() {
}
}
/**
* Created by liuyazhou on 2017/4/10.
*/
public class Dog extends Animal {
@Override
public void cry() {
System.out.println("狗哭...");
}
@Override
public void eat() {
}
@Override
public void zooFun1() {
System.out.println("Dog zooFun1....");
}
@Override
public void ZooInterface1Fun1() {
}
}
/**
* Created by liuyazhou on 2017/4/10.
*/
public abstract class Zoo implements ZooInterface1 {
public abstract void zooFun1();
}
/**
* Created by liuyazhou on 2017/4/11.
*/
public interface ZooInterface1 {
//接口是公开的,不能含有私有变量或方法,
//方法只要是声明即可
void ZooInterface1Fun1();
}
public class Main {
public static void main(String[] args) {
Animal cat = new Cat();
Animal dog = new Dog();
cat.cry();
dog.cry();
cat.zooFun1();
dog.zooFun1();
}
}
输出:
猫哭...
狗哭...
Cat zooFun1....
Dog zooFun1....
1 接口不是类,抽象类是不完整的类
2接口是公开的,里面不能有私有的方法或变量,而抽象类是可以有私有方法或私有变量的
3 一个类可以实现多个接口,但只能继承一个超类
4 抽象类的是对对象的抽象,接口是对行为的抽象
5 抽象类的设计师自底向上的,接口的设计师自顶向下的