美文网首页
Java基础教程之接口的继承与抽象类

Java基础教程之接口的继承与抽象类

作者: 培训机构 | 来源:发表于2016-11-27 16:31 被阅读33次

Java基础教程之接口的继承与抽象类

在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。

JAVA培训机构介绍,在继承中,我们为了提高程序的可复用性,引入的继承机制。当时的继承是基于类的。interface接口同样可以继承,以拓展原interface。

接口继承

接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。比如,我们以Cup作为原interface:

代码如下:

interface Cup {

void addWater(int w);

void drinkWater(int w);

}

我们在继承Cup的基础上,定义一个新的有刻度的杯子的接口,MetricCup

接口如下:

代码如下:

interface MetricCup extends Cup

{

int WaterContent();

}

我们增添了一个新的方法原型WaterContent(),这个方法返回一个整数(水量)。

interface的多重继承

在Java类的继承中,一个衍生类只能有一个基类。也就是说,一个类不能同时继承多于一个的类。在Java中,interface可以同时继承多于一个interface,这叫做多重继承(multiple

inheritance)。

比如我们有下面一个Player接口:

代码如下:

interface Player

{

void play();

}

我们新增一个MusicCup的接口。它既有Cup接口,又有Player接口,并增加一个display()方法原型。

代码如下:

interface MusicCup extends Cup, Player

{

void display();

}

(如何使用interface,见实施接口)

抽象类

在生活中,我们会有一些很抽象的概念。这些抽象的概念往往是许多类的集合,比如:

1.粮食 (可以是玉米、小麦、大米)

2.图形 (可以是三角形、圆形、正方形)

再比如,我们之前举出了例子:

1.人类 (可以是男人、女人)

在组织这样的关系时,我们可以使用继承,比如:

根据我们的常识:

1."Food类的对象"的说法是抽象的。这样一个对象应该是属于Corn, Rice, Wheat子类中的一个。

2.Food类有eat()方法

(食物可以吃)。然而,这样的一个动作是抽象的。粮食的具体吃法是不同的。比如Corn需要剥皮吃,Wheat要磨成面粉吃。我们需要在每个类中覆盖Food类的eat()方法。

抽象与具体

Java中提供了抽象类(abstract class)的语法,用于说明类及其方法的抽象性。比如:

代码如下:

abstract class Food {

public abstract void eat();

public void happyFood();

{

System.out.println("Good! Eat Me!");

}

}

类中的方法可以声明为abstract,比如上面的eat()。这时,我们不需要具体定义方法,只需要提供该方法的原型。这与接口类似。当我们在比如Corn类中继承该类时,需要提供eat()方法的具体定义。

类中的另一个方法happyFood()并不是

当一个类中出现abstract方法时,这个类的声明必须加上abstract关键字,否则Java将报错。一个abstract类不能用于创建对象。

抽象类的继承

我们可以像继承类那样继承一个抽象类。我们必须用完整的方法定义,来覆盖抽象类中的抽象方法,否则,衍生类依然是一个抽象类。

抽象类的定义中可以有数据成员。数据成员的继承与正常类的继承相同。

总结

interface继承,多重继承

abstract method, abstract类

相关文章

  • Java基础教程之接口的继承与抽象类

    Java基础教程之接口的继承与抽象类 在实施接口中,我们利用interface语法,将interface从类定义中...

  • Android-知识点总结

    Java知识点 抽象类与接口的区别: 抽象类可以有方法的具体实现,接口不可以。 由于Java单继承的特性,子类只能...

  • JAVA(9)继承与多态

    继承与多态 、抽象类、接口 继承: 继承是类与类的一种关系 java中的继承是单继承 继承的好处: 子类拥有父类的...

  • JAVA中的抽象类和接口

    父类-抽象类:Telephone.java 接口:IPayGame.java 继承了抽象类的子类:CellPhon...

  • AQS(抽象队列同步器)源码初窥

    本质 java锁的实现原理就是继承AQS抽象类java锁继承Lock接口, 而Lock需要实现的接口依赖AQS的实...

  • 谈谈 接口与抽象类

    话不多说,直奔主题。先聊一聊 接口与抽象类的区别: 用法不同。接口需要被实现,而抽象类需要被继承。在Java中是单...

  • java抽象类和接口

    参考:java抽象类和接口--树上月 总结:1.抽象类在java语言中体现的是继承关系,即"is-a"关系,而接口...

  • Java面向对象之抽象类、接口和多态

    抽象类 Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类抽象类 接口 Java提供了关键字inter...

  • 6.java类与类之间的关系

    1.概述 java 的类分为 普通类,抽象类,接口。 2.关系 继承普通类 继承 抽象类,普通类 继承 普通类 实...

  • 1.抽象类与接口

    抽象类(abstract) 接口(interface) kotlin中接口可以继承接口 java8之前接口方法是不...

网友评论

      本文标题:Java基础教程之接口的继承与抽象类

      本文链接:https://www.haomeiwen.com/subject/uurnpttx.html