JAVA中implement和extends的区别

 

简单说:
extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了
比如
class A extends B implements C,D,E

术语话来说:
extends 继承类;implements 实现接口。

类和接口是不同的:类里是有程序实现的;而接口无程序实现,只可以预定义方法 extends 继承类。
implements 实现接口:
Java也提供继承机制﹐但还另外提供一个叫interface的概念。由于Java的继承机制只能
提供单一继承(就是只能继承一种父类别)﹐所以就以Java的interface来代替C++的多重继承。interface就是一种介面﹐规定欲沟通的
两物件﹐其通讯该有的规范有哪些。如以Java程式语言的角度来看﹐Java的interface则表示:一些函数或资料成员﹐为另一些属于不同类别的物
件所需共同拥有﹐则将这些函数与资料成员﹐定义在一个interface中﹐然后让所有不同类别的Java物件可以共同操作使用之。

Java的class只能继承一个父类别(用extends关键字)﹐但可以拥有(或称实作)许多interface(用implements关键字)。



extends和implements有什么不同?
对于class而言,extends用于(单)继承一个类(class),而implements用于实现
一个接口(interface)。

interface的引入是为了部分地提供多继承的功能。
在interface中只需声明方法头,而将方法体留给实现的class来做。
这些实现的class的实例完全可以当作interface的实例来对待。
在interface之间也可以声明为extends(多继承)的关系。
注意一个interface可以extends多个其他interface。




PS:

java数组的声明和初始化


数组

Java中的数组跟C/C++这些语言中的数组的语法结构很相似。但是,Java去掉了C /C++中的可以通过[]或者使用指针来访问元素的功能。这种在C/C++中被普遍接受的功能虽然强大,但是也让Bug横行的软件更容易出现。因为 Java不支持这种直接通过指针来操纵数据,这类的Bug也被消除了。
数组是一类包含被称为元素的值的对象。这就为你在程序中移动或保存一组数据以很方便的支持,并且允许你根据需要访问和改变这些值。用一个小例子来说:你可以创建一个String类型的数组,每一个都包含一个运动队队员名字。数组可以传送给一个需要访问每个队员名字的方法。如果一个新队员加入,其中一个老队员的名字可以被修改成新队员的名字。这就显得比player1、player2、 player3等等很随意的不相关的变量方便很多。跟变量通过变量名来访问不同的是,元素通过从0开始的数字来访问。因此,你可以一个个的访问数组的每个元素。
数组跟对象很相似,它们都是用new关键字来创建,并且有属于主要父对象类的方法。数组可能存储简单类型或者对象的引用。
数组的每个元素必须是同一类型的。元素的类型在数组被声明时确定。如果你需要存储不同类型元素的方式,你可以选择collection类,collection类是Java2考试中的新增的考点,我们将会在第十部分讨论它。你可以用数组来存储对象的句柄,你能像使用其它任意对象引用一样访问,摘录或者使用它。

声明但不分配空间

声明一个数组不需分配任何存储空间,它仅仅是代表你试图创建一个数组。跟C/C++声明一个数组的明显区别就是空间的大小没有被特别标识。因此,下面的声明将会引起一个编译期错误。
int num[5];
一个数组的大小将在数组使用new关键字真正创建时被给定,例如:
int num[];
num = new int[5];
你可以认为命令new的使用跟初始化一个类的实例的使用是类似的。例子中数组名num说明数组大小可以是任意大小的整形数据。

同时声明和创建数组

这个例子也可以使用一行语句完成:
int num[] = new int[5];
方括号也可以放在数据类型后面或者数组名后面。下面的两种都是合法的:
int[] num;
int num[];
你可以读作:
一个名字为num的整型数组
一个数据类型为整型名字为num的数组

java数组的声明和初始化相结合

一个数组可以通过一个语句来创建并初始化,这就代替了通过数组循环来初始化的方式。这种方法很适合小数组。下面的语句创建了一个整型数组并且赋值为0到4:
int k[]=new int[] {0,1,2,3,4};
注意,你没有必要确定数组元素的数量。你可能在测验中被问到下面的语句是不是正确的问题:
int k=new int[5] {0,1,2,3,4} //Wrong, will not compile!
你可以创建数组的同时确定任何数据类型,因此,你可以创建一个类似于下面形式的字符串数组:
String s[]=new String[] {"Zero","One","Two","Three","Four"};
System.out.println(s[0]);
这句将会输出String[0]。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值