一.接口
1.接口的基本定义:
(1)、语句定义格式:接口使用关键:interface表示
interface 接口名{}
(2)、接口是如何实现的呢?
接口不能直接实例化
那么接口如何去表示呢?
这里需要另外一个关键字供其他类实现该接口:implements
使用多态的形式进行实现,由具体的子类进行实例化,其实这是多态的一种,叫做接口多态。
(3)、也可以用一个抽象类去实现,但用抽象类去实现时可以选择性的去实现接口中的方法。
现在我们将猫狗案例加入钻火圈的功能改写。
到目前为止,我们学过了三种多态的表现实现:
1、具体的类中的多态 (最后才是具体类的多态)
2、抽象类中的多态 (其次是抽象多态)
3、接口中的多态 (今后大数据开发最常见的是接口多态)
(4).猫狗增加钻火圈案例
public class InterfaceDemo1 {
public static void main(String[] args) {
Dog f=new SkillDog("小白",2);
f.eat();
f.sleep();
SkillDog m=(SkillDog)f;
m.chuanhuoquan();
Cat f1=new SkillCat("小黑",3);
f1.eat();
f1.sleep();
((SkillCat) f1).chuanhuoquan();
}
}
abstract class Animal{
public String name;
public int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Animal(){
}
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
public abstract void eat();
public abstract void sleep();
}
class Dog extends Animal{
public Dog(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("狗吃肉");
}
@Override
public void sleep() {
System.out.println("狗趴着睡");
}
}
class Cat extends Animal{
public Cat(){
}
public Cat(String name, int age) {
super(name, age);
}
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public void sleep() {
System.out.println("猫蜷着睡");
}
}
interface ChuanHuoQuan{
public abstract void chuanhuoquan();
}
class SkillDog extends Dog implements ChuanHuoQuan{
public SkillDog(String