1. 我想举一个具体的例子来说明什么是抽象类:
比如我想定义一个类Cat,又想定义一个类Dog,可是Cat和Dog之间既有相同点,又有不同点,那我就要创造一个抽象类Animal,这样使Cat和Dog都继承自Animal。
2. 那接口(interface)是什么呢?
可以把接口看成是抽象类的一种延伸,更进一步说,接口更像是一组方法的集合。
3. 下面我用具体的代码来让大家感受一下抽象类和接口:
还是用猫和狗的例子,猫和狗都继承于动物类,实现了吃东西(Eat)的接口。
//声明一个抽象类Animal
public abstract class Animal {
public abstract void say();
}
//声明一个接口Eat
public interface Eat {
void eatFood();
}
//Cat继承自Animal
public class Cat extends Animal implements Eat{
@Override
public void say() {
System.out.println("Meow~");
}
@Override
public void eatFood() {
System.out.println("The cat is eating fish.");
}
}
//Dog继承自Animal
public class Dog extends Animal implements Eat{
@Override
public void say() {
System.out.println("Wang~");
}
@Override
public void eatFood() {
// TODO Auto-generated method stub
System.out.println("The dog is eating bone.");
}
}
public class Test {
public static void main(String[] args) {
//实例化对象
Cat cat = new Cat();
Dog dog = new Dog();
cat.say();
cat.eatFood();
dog.say();
dog.eatFood();
}
}