Java 抽象数据类型和接口
我是Java新手。抽象数据类型和接口之间的区别是什么 例如,我们有一个ListADTJava 抽象数据类型和接口,java,Java,我是Java新手。抽象数据类型和接口之间的区别是什么 例如,我们有一个ListADT interface MyListADT<T> { void add(T var); void add(T var,int pos); void display(); T remove(int pos); void clear(); boolean contains(Object o); } 接口mylistat{ 虚增(T-var); 无效添加(T
interface MyListADT<T> {
void add(T var);
void add(T var,int pos);
void display();
T remove(int pos);
void clear();
boolean contains(Object o);
}
接口mylistat{
虚增(T-var);
无效添加(T var、int pos);
void display();
T移除(内部位置);
无效清除();
布尔包含(对象o);
}
我们将ADT定义为一个接口。现在,ADT和接口或ADT是接口之间的区别是什么
What is the difference between Abstract data type and Interface.
数据及其方法的组合称为抽象数据类型(ADT) Java接口是指定(但不是实现)ADT的一种方法 它指定ADT方法的名称、参数和返回类型(即标头) 接口没有指定数据字段(公共常量除外),因为这是一个实现细节
Java接口将ADT的要求指定为服务提供者(实现ADT的类)和客户端(类的用户)之间的契约。数据及其方法的组合称为抽象数据类型(ADT) Java接口是一种指定抽象数据类型(ADT)的方法
当一个类包含零个或多个抽象方法时,或者当一个接口被实现到一个并非所有方法都未实现的类时,您可以将该类声明为抽象类。试着这样思考:
- Java接口是一种类型,它归结为一组方法签名。任何类型,只要愿意作为接口引用,都必须为这些签名提供实现。实际上,没有行为契约。您的实现不能做任何事情,仍然是“实现”接口
- Java抽象类是一种类型,具有部分指定的行为,由于某种原因,其内部实现必须在继承器中指定。此类确实具有行为,可以在其继承者中重新定义/指定
- ADT是一组预期行为。您假设,在调用
之后,您调用adt.remove(element)
并接收adt.get(element)
null
- 正确实现接口
的所有内容都是ADT。其外部行为必须符合ADT概念。这意味着,要被视为ADT,您的类型必须带有实现,这将导致抽象类或普通类。例如:mylistat
是ADT的接口,但是java.util.List
和java.util.ArrayList
实际上是ADT,因为它们的实际行为符合ADT的概念java.util.LinkedList
public abstract class MyAbstractClass
{
//code
public abstract void method();
}
public abstract class Animal
{
abstract void walk();
}
public class Dog extends Animal
{
void walk()
{
//Implementation is done here
}
}
public interface NameOfInterface
{
//Any number of final, static fields
//Any number of abstract method declarations\
}
interface Animal {
public void eat();
public void travel();
}
public class MammalInt implements Animal{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
//Filename: Sports.java
public interface Sports
{
public void setHomeTeam(String name);
public void setVisitingTeam(String name);
}
//Filename: Football.java
public interface Football extends Sports
{
public void homeTeamScored(int points);
public void visitingTeamScored(int points);
public void endOfQuarter(int quarter);
}
//Filename: Hockey.java
public interface Hockey extends Sports
{
public void homeGoalScored();
public void visitingGoalScored();
public void endOfPeriod(int period);
public void overtimePeriod(int ot);
}
public interface Hockey extends Sports, Event
interface A can extends interface B
class A can extends class B
class A implements interface A
class A extends class B implements interface A