java中继承与接口的区别

本文深入探讨了接口与继承这两种代码重用方式的区别与特性。解释了接口如何定义规范供类实现,解决了Java不能多继承的问题;并通过实例展示了继承的强大功能及其在多态中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

继承和借口都能实现代码重用,提高开发效率。接下来概述下两者的区别与特性。

首先看接口,它一般由常量,方法(没有方法体)组成,其实质是定义一套规范供后者使用。比如说电脑生者商和其他配件生产商各自开发自己的产品,为了能相互兼容,我们并不需要了解其他生产商的产品,而是通过定义一套规范,让所有生产商共用这套规范来定制自己的产品就行,这样他们就可以相互引用。

接口在java编程中还解决java不能多继承的问题,通过接口还能定制自己所需要的功能。接口是不能直接实例化的,只能被类实现或被其他接口继承。

继承功能上很强大,当你新建一个类并继承了某个父类,那么这个类就具有了父类的属性和方法(构造方法不被继承,但可以通过super来调用)。在子类中,你可以:

  • 被继承的字段和方法可以直接使用

  • 可以新建自己的属性和方法

  • 可以重写父类的方法

注意:继承可以访问父类以public 或 protected 修饰的变量或方法,不论它是在哪个包中继承的。而private修饰的变量是不被子类继承的,这里有两个情况可以让子类访问父类中的方法和属性:

  • 在父类中可访问私有变量的方法,并且此方法不为private修饰。

  • 嵌套子类可以访问外部的父类中的私有属性及方法

关于继承中的多态问题:比如新建一个父类Bicycle,和继承Bicycle的子类MountainBike。我们可以通过多态的方式实例化子类,如:

Bicycle bike = new MountainBike();

这里我们可以说MountainBike是一种Bicycle,但是下面的情况是不允许的:

MountainBike anotherBike = bike:

这时编译器是不通过的,尽管bike本身是MountainBike的实例,但也可以是Bicycle,因此我们需要指明,像下面这种方式:

MountainBike anotherBike = (MountainBike) bike:

通过隐式转化指定是具体哪一个的实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值