在传统的教科书或者书籍中都会灌输我们一个观念,那就是抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),接口也不能被继承(extends),但是今天这个观点有些地方被颠覆了。
抽象类可以被继承(extends),接口可以被实现(implements),但是抽象类不能被实现(implements),这三个观点确实没有什么问题,但是接口却是可以被继承的,当然你也许会举一个类似下面的例子来证明接口是不能被继承的,代码如下:
确实上面的代码不能被编译通过,会出现以下错误:
也许你就想以上面的例子来证明我的观点是错误的,但是请看下面的例子:
看看图中高亮部分代码,它是可以通过编译的,下面的编译结果:
另外在C#中我也做过测试,因为在C#中实现和继承没办法从类似于java的implements或者extends关键字看出来,它都是用:符号来体现的,不过看具体代码还是可以看出来的,请看下面一段代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceDay2
{
interfaceInterfaceA
{
intAdd();
}
interfaceInterfaceB:InterfaceA
{
intMinus();
}
}
这段代码是可以在VS中编译通过的。
通过以上实例说明接口之间是可以继承的,也就是所谓的接口扩充,这样一来继承了一个接口的类就有了两个接口的方法。
总结:接口可以继承接口,类只能实现接口。
分享到:
相关推荐
- 接口(使用`interface`关键字定义)是一种完全抽象的类型,可以看作是方法的集合。一个类可以实现(`implements`)多个接口。 7. **继承与访问权限** - 子类可以访问父类的非私有成员,但不能访问父类的私有...
Java中的继承支持单一继承,即一个子类只能直接继承一个父类,但可以通过接口实现多继承的效果。 **二、`extends` 关键字的使用** 在Java中,声明一个类为另一个类的子类时,使用 `extends` 关键字。以下是一个简单...
Java接口可以继承其他接口,使用`extends`关键字,如`interface ChildInterface extends ParentInterface { ... }`。接口支持多重继承,一个接口可以继承多个父接口。 5. **默认方法与静态方法**: 自Java 8起,...
在Java编程语言中,接口(Interface)和继承(Inheritance)是面向对象设计的重要特性,它们为代码提供了灵活性、可扩展性和复用性。本文将深入探讨这两个概念以及它们在实际开发中的应用。 首先,我们来看一下接口...
接口可以被多个类实现,例如,interface Runner { void run(); },这个接口可以被多个类实现,例如,class Fish implements Animal { public void run() { ... } }。 实现接口的注意点 在实现接口时,需要注意以下...
接口之间可以通过`extends`关键字进行继承,形成接口的层次结构,从而实现接口的复用和扩展。例如: ```java public interface AnotherInterface extends MyInterface { void anotherMethod(); } ``` 6. **...
一个类可以继承一个抽象类,也可以实现多个接口。但是,一个类只能继承一个抽象类。 在实际应用中,抽象类和接口都是用来描述对象的行为和状态的。但是,抽象类更多地强调继承关系,而接口更多地强调多态性。抽象类...
4. **抽象程度不同**:接口是一种纯粹的抽象,而继承既可以是抽象的也可以是具体的实现。 综上所述,Java中的接口实现与类继承为开发者提供了强大的工具来组织和复用代码。正确理解并灵活运用这两种机制,可以帮助...
不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。 在Java中,还有Static Nested Class和Inner Class的概念。Static Nested Class意味着创建一个static内部类的对象,不需要一个外部...
抽象类使用`abstract`关键字声明,并可以通过`extends`关键字来继承其他类。与接口不同,一个类只能继承一个抽象类,但可以实现多个接口,这样就实现了接口的多重继承特性。抽象类的主要目的是为子类提供一个公共...
- 接口之间可以继承,使用`extends`关键字,一个子接口可以继承多个父接口,实现多继承特性,弥补了Java中类的单继承限制。 - 当一个接口继承另一个接口时,子接口继承了父接口的所有抽象方法和常量。 3. **接口...
在TypeScript中,通过使用`extends`关键字,我们可以创建一个新的接口,该接口将继承另一个接口的所有属性和方法。这在需要为现有接口添加新特性或扩展功能时非常有用。例如: ```typescript interface Person { ...
### 详解Java接口、继承和多态 #### 一、Java接口 在Java中,接口是一种定义行为的方式,它提供了一种实现抽象方法的手段。通过接口,开发人员可以为类定义一组方法签名,但不提供这些方法的具体实现。这有助于...
此外,一个接口也可以继承多个接口,通过逗号分隔来指定: ```typescript interface IHobby { game: string; } interface IProgrammer extends IWork, IHobby { language: string; income: number; sport: ...
3. **继承性**:抽象类可以被其他类继承,一个类可以继承多个抽象类的功能(通过多层继承实现)。 4. **方法实现**:抽象类中的非抽象方法具有实际的实现,而抽象方法需要由子类提供实现。 #### 四、接口 **定义**...
5. **接口(Interface)**:虽然Dart语言本身没有直接的接口(interface)关键字,但我们可以使用抽象类来模拟接口的功能。上述示例中的`Mover`就是一个接口的例子,它定义了一个`move`方法,而`Bird`和`Car`类实现...
implements 关键字用于实现多个接口,一个类可以实现多个接口,每个接口中的方法都需要被实现。接口中的方法都是抽象的,需要被实现类去实现。 在类的声明中,通过关键字 implements 来声明自己使用一个或者多个...
接口的声明是通过interface关键字来实现的,例如:`public interface Shape { public abstract double computeArea(double a, double b); }` 八、实验结果 通过本实验,我们掌握了继承原理与机制、类继承的声明...
3)接口与接口之间可以继承 如: public interface InterfaceA extends InterfaceB{} 4)类可以实现接口,一个类可以多实现接口 如: public class ClassName implements InterfaceA,InterfaceB{} 5)一个类如果实现...