Java面向对象(五)接口

1.接口的定义

    接口是功能的集合

    接口只描述所应该具有的方法,没有具体的实现

    这样将功能的定义和实现分离,优化了程序设计

    接口的定义需要使用interface关键字,定义格式:

    public interface 接口名{}

注意:

    1.接口中的方法均为抽象方法

    2.接口中没有普通的成员变量

2.类实现接口

    类与接口为实现关系,需要使用implements关键字

    class 实现类名 implements 接口名{

        重写接口中的抽象方法;

    }

    在类实现接口之后,该类就会将接口中的抽象方法继承过来,此时该类只需要重新重写这个抽象方法,完成具体的逻辑

3.接口中成员的特点

    1.接口中可以定义成员变量,但是有固定的修饰符,public static final。所以接口中的变量也成为常量,其值不能改变。

    2.接口中可以定义成员方法,同样有固定的修饰符,public abstract,即接口中的方法均为抽象方法。

    3.接口不可以直接创建对象,需要通过实现类来创建对象

    4.实现类必须重写接口中所有的抽象方法,这样实现类才能实例化,否则实现类还是一个抽象类

interface Demo { ///定义一个名称为Demo的接口。
	public static final int NUM = 3;// NUM的值不能改变
	public abstract void show1();
	public abstract void show2();
}

//定义子类去覆盖接口中的方法。类与接口之间的关系是 实现。通过 关键字 implements
class DemoImpl implements Demo { //子类实现Demo接口。
	//重写接口中的方法。
	public void show1(){}
	public void show2(){}
}

4.接口的多实现

    接口最重要的体现:解决了继承的弊端。将多继承这种机制在java中通过接口的多实现解决了。

interface Fu1
{
	void show1();
}
interface Fu2
{
	void show2();
}
class Zi implements Fu1,Fu2// 多实现。同时实现多个接口。
{
	public void show1(){}
	public void show2(){}
}

    接口是如何解决继承的弊端呢?

    继承的弊端:多继承时,当多个父类具有相同的功能时,子类调用会产生不确定性。

    核心原因就是因为继承时方法具有主体,导致当调用功能时,不确定运行的是哪个主体内容。又因为接口中方法没有主体,所以实现类调用并不会产生不确定性。

5.接口的多继承

    接口之间的继承同样使用关键字extends。
interface Fu1{
	void show();
}
interface Fu2{
	void show1();
}
interface Fu3{
	void show2();
}
interface Zi extends Fu1,Fu2,Fu3{
	void show3();
}

    在开发中,如果多个接口中存在相同方法,这时,若有个类实现这些接口,那么就要实现接口中的抽象方法,由于抽象方法没有主体,子类实现后也不会发生调用的不确定性。

6.类继承的同时也可以实现接口

    当一个类已经继承另一个类的同时有需要扩展额外功能,这时就需要接口了。
class Fu {
	public void show(){}
}
interface Inter {
	pulbic abstract void show1();
}
class Zi extends Fu implements Inter {
	public void show1() {
	}
}

    接口避免了继承的局限性。父类中定义事物的基本功能。接口中定义事物的扩展功能。

7.接口和抽象类的区别

    1.相同点

        ·都位于继承的顶端,用于被其他类实现或者继承

        ·都不能直接实例化对象

        ·都包含抽象方法,其子类都必须覆盖这些方法,否则为抽象类

    2.区别

        ·抽象类部分方法提供实现,避免子类重复实现这些方法,提高代码的复用性;

         接口中只能存在抽象方法,不能提供方法的实现;

        ·一个类只能继承一个父类(抽象类);

         一个类可以实现多个接口(弥补了Java的单继承)

        ·抽象类是这个事物应该具备的内容

         接口是这个事物扩展的内容

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值