接口的概述及其特点

我们就拿猫狗案例来讲,狗一般就是看门,猫一般就是作为宠物,但是现在有很多的驯养员或者是驯兽师,可以训练出:猫钻火圈,狗跳高等。而这些额外的动作,并不是所有猫或者狗一开始就具备的,这应该属于经过特殊的培训训练出来的。所以,这些额外的动作定义到动物类中就不合适,也不适合直接定义到猫或者狗中,因为只有部分猫狗具备这些功能。所以,为了体现事物功能的扩展性,java中就提供了接口来定义这些额外功能,并不给出具体体现,将来哪些猫狗需要被培训,只需要这部分猫狗把这些额外功能实现即可。

接口特点

1.接口用关键字interface表示

格式:interface 接口名 { }

2.类实现接口用implements表示

格式:class 类名 implements 接口名{ }

package test4_7.jiekou;
//接口中定义的是扩展功能
public interface JumpInterface {
    public abstract void jump();

}

3.接口不能实例化

那如何来实例化?按照多态的方式来实例化。

4.接口的子类

可以是抽象类,但是意义不大。

可以是具体类,要重写接口中的所有抽象方法。

接口成员特点

1.成员变量:只能是常量,并且是静态的.默认修饰符:public static final

2.构造方法:接口没有构造方法

3.成员方法:只能是抽象方法。默认修饰符:public abstract

public class Dog extends Animal implements JumpInterface{
    @Override
    public void eat() {
        System.out.println("狗吃骨头");
    }

    @Override
    public void jump() {
        System.out.println("狗经过不断练习学会跳高");
    }
}

public abstract class Animal {
    public abstract void eat();
}

类与类,类与接口,接口与接口之间的关系

1.类与类:

继承关系,只能单继承,可以多层继承

2.类与接口:

实现关系,可以单实现,也可以多实现,并且还可以在继承一个类的同时,实现多个接口。

3.接口与接口:

继承关系,可以单继承,也可以多继承。

抽象类和接口的区别

1.成员区别

抽象类:

        成员变量:可以变量,也可以常量,

        构造方法:有

        成员方法:可以抽象,也可以非抽象

package test4_7;

public abstract class Person {
    public String  name;
    public String age;
    public abstract  void eat();
    public abstract  void sleep();
}
package test4_7;

public class Student extends Person {
    @Override
    public void eat() {
        System.out.println("学生爱吃麻辣烫");
    }

    @Override
    public void sleep() {
        System.out.println("学生爱白天睡觉");
    }
    public void fallInLove(){
        System.out.println("学生谈恋爱");
    }
}

package test4_7;

public class Teacher extends Person{
    @Override
    public void eat() {
        System.out.println("老师爱吃面条");
    }

    @Override
    public void sleep() {
        System.out.println("老师一般晚上睡觉");
    }
    public void teach(){
        System.out.println("老师教书");
    }
}

接口:

        成员变量:只可以常量

        成员方法:只可以抽象

2.关系区别:

类与类:继承,单继承

类与接口:实现,单实现,多实现

接口与接口:继承,单继承,多继承

3.设计理念的区别

抽象类,被继承体现的是“is a ”的关系。抽象类中定义的是该继承体系的共性功能。

接口:被实现体现的是“like a ”的关系,接口中定义的是该继承体系的扩展功能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值