Java implements 与 extends总结

接口和抽象类的区别是什么?

    (1)接口只有定义,其方法不能在接口中实现,只有实现接口的类才能实现接口中定义的方法,而抽象类可以有方法的定义和实现

    (2)接口需要实现(implements),但抽象类只能被继承(extends)。一个类可实现多个接口,但只能继承一个类,接口可借此实现多重继承。

    (3)接口:“has-a”,继承:"is-a

    (4)接口中成员默认是public static final,只有静态的不能被修改的数据成员,且必须赋初值,所有成员方法都是public、abstract,且只能被这两个关键词修饰。而抽象类可以有自己的数据成员变量,也可以有非抽象的成员方法。

相同点:

    (1)都不能被实例化

    (2)只有实现了接口或者抽象类中的方法后,才能被实例化。

1.Java interface implements

    (1)interface(接口)定义一些方法,并没有实现,需要implements来实现才可用。

    (2)interface的引入是为了部分地提供多继承的功能。在interface中只需声明方法头,而将方法体留给实现的class来做。接口定义的方法不能够修改一个类通过关键字implements声明自己使用一个或者多个接口。

    (3)extend可以继承一个接口,但仍是一个接口,也需要implements之后才可用。

    (4)在interface之间也可以声明为extends(多继承)的关系。继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了;比如 class A extends B implements C,D,E。

    (5)接口实现的注意点:

        a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。
        b.接口中的方法都是抽象的。

        c.多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。

  (6)implements,实现父类,子类不可以覆盖父类的方法或者变量。即使子类定义与父类相同的变量或者函数,也会被父类取代掉。

2.Java extends

    (1)在类的声明中,通过关键字extends来创建一个类的子类。

    (2)extends是继承父类,只要那个类不是声明为final就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就要用到implements。

public inerface Runner
{
  void run ();
}
interface Animal extends Runner
{
  void breather ();
}
class Fish implements Animal
{
  public void run ()
  {
    System.out.println("fish is swimming");
  }
  public void breather()
  {
    System.out.println("fish is bubbing");   
  }
}
abstract LandAnimal implements Animal
{
  public void breather ()
  {
   System.out.println("LandAnimal is breathing");
  }
}
class Student extends Person implements Runner
{
   ......
   public void run ()
    {
         System.out.println("the student is running");
    }
   ......
}

        这两种实现的具体使用,是要看项目的实际情况,需要实现,不可以修改,用implements。只定义接口需要具体实现,或者可以被修改扩展性好,用extends。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值