接口中都可以包含什么?接口能作为类型,实现多态(向上转型)吗?举例说明。
时间: 2024-03-20 22:41:43 浏览: 19
接口可以包含方法、常量、默认方法和静态方法。
接口可以作为类型,并且可以实现多态(向上转型)。例如,假设有一个接口Animal,里面有一个方法speak(),然后有两个类Cat和Dog,都实现了Animal接口并且重写了speak()方法。那么可以创建一个Animal类型的变量,分别将它们赋值给这个变量,实现多态。具体代码如下:
```java
interface Animal {
void speak();
}
class Cat implements Animal {
@Override
public void speak() {
System.out.println("喵喵喵");
}
}
class Dog implements Animal {
@Override
public void speak() {
System.out.println("汪汪汪");
}
}
public class Test {
public static void main(String[] args) {
Animal animal1 = new Cat();
Animal animal2 = new Dog();
animal1.speak(); // 输出:喵喵喵
animal2.speak(); // 输出:汪汪汪
}
}
```
在上面的例子中,Animal接口作为类型,可以表示Cat和Dog两个类的对象,并且调用speak()方法时会自动调用对应类中的方法,实现了多态。