Java扩展与实现关键字

在Java中,extends用于扩展类,而Implements用于实现接口。这是Extended与Implements之间的主要区别

1.扩展关键字

在Java中,我们可以通过使用extend关键字扩展类来继承类的字段和方法。请注意,在Java中,一个类最多只能扩展一个类。

ArrayList班级为例。它扩展了AbstractList类,又扩展了AbstractCollection类。

因此,基本上ArrayList类具有其父类AbstractList和AbstractCollection的方法和行为。

AbstractCollection提供了诸如contains(Object o),toArray(),remove(Object o)等方法。而AbstractList类提供了add(),indexOf(),lastIndexOf(),clear()等方法。某些方法被ArrayList覆盖再次。

public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
	//code
}

Java扩展示例

让我们从头开始创建一些东西,以更好地了解使用extends关键字的Java继承如何工作。我创建了两个类– ParentClassChildClass,其中ChildClass扩展ParentClass

public class ParentClass {
	
	public int dataVal = 100;
	
	public int getDataVal() {
		return this.dataVal;
	}
}
public class ChildClass extends ParentClass 
{
	
}

我没有添加任何字段或方法ChildClass只是为了表明即使我们不对其添加任何内容,它仍然具有其父类的行为。

public class Main 
{
	public static void main(String[] args) 
	{
		ChildClass child = new ChildClass();
		
		System.out.println( child.dataVal );
		System.out.println( child.getDataVal() );
	}
}

程序输出。

100
100

2.实现关键字

接口是在Java中强制执行约定的方法。它们强制实现类提供某种行为。要实现接口,类必须使用Implements关键字

在Java中,我们可以实现多个接口。在这种情况下,类必须实现所有接口的所有方法。(或声明自己为abstract)。

再看一次ArrayList类声明。它实现了4个接口,即ListRandomAccessCloneableSerializable。它已经在给定的接口中实现了所有方法。

Java实现示例

与前面的示例类似,让我们创建一些基本的知识来了解接口实现的外观。我创建了两个接口MovableSwimmable。两个接口都定义一种方法。

一个类Human实现两个接口,因此它必须实现两个接口中定义的方法。

public interface Movable {
	
	public void move();
}
public interface Swimmable
{
	public void swim();
}

public class Human implements Movable, Swimmable 
{
	@Override
	public void swim() {
		System.out.println("I am swimming");
	}

	@Override
	public void move() {
		System.out.println("I am moving");
	}
}

现在,我们将测试人类类及其强制行为。

public class Main 
{
	public static void main(String[] args) 
	{
		Human obj = new Human();
		
		obj.move();
		obj.swim();
	}
}

程序输出。

I am moving
I am swimming

显然,Human类同时实现了两个接口并定义了它们的行为。这就是Java接口的全部目的。

3.扩展与工具之间的差异

基于以上示例,让我们列出Java中extended和Implements关键字之间区别

  1. extend关键字用于继承类;while关键字用于继承接口。
  2. 一类只能扩展一个类。但可以实现任意数量的接口。
  3. 扩展超类的子类可能会覆盖超类中的某些方法。一个类必须实现接口中的所有方法。

saigon has written 1445 articles

Leave a Reply