接口是Java里实现多重继承的重要方法。
抽象类则有点类似"模板"得作用,其目的是要依据其格式修改并创建新的类。
先说说接口吧。
1、接口的定义
接口是Java中实现多态性的重要手段。使用借口,可以把操作完全从类中抽象出来,也就是,接口中只定义类必须做什么,而不是如何做。接口从语法上看与一般类类似,但是有两个不同点:
*在接口中只是声明method,而不在其中实现。
*在接口中定义的数据成员必须要初始化,且不能更改。
举个例子说明一下接口定义的方式。
interface IShape
{
double Pi=3.14159;//数据成员一定要初始化
void area();//method 只声明不实现
}
这样,每个实现IShape接口的类都可以自由的使用常量Pi,而且必须在类内部定义area()方法。
因为在接口中只有抽象的方法,即只对方法进行声明而不定义其处理方式,所以接口不能像一般类一样,用new运算符直接产生对象。相反的,我们必须利用借口的特性打造一个新的类,在用此生成的类创建对象。而利用接口打造新的类的过程,就是借口的实现(implementation)
2、接口的实现
举一个接口实现的例子。
public interface AudioClip
{
void play();
void loop();
void stop();
}
class Myclass implements AudioClip
{
void play()
{ <具体实现>
}
void loop()
{ <具体实现>
}
void stop()
{ <具体实现>
}
}
这里定义了AudioClip接口,想使用AudioClip接口的类必须使用implements关键词来实现接口。优点是一个接口类可以被多个类实现,每个类可以共享程序接口而不必关心其他类是怎么实现的。
另外,再举个接口部分实现的例子。
public interface Myinterface
{
void method1();
void method2();
void method3();
}
public abstract class Myclass implements Myinterface
{
void method1();
{
System.out.println("here is method1");
}
void method2()
{
System.out.println("here is method2");
}
void method3();
}
在Myclass没有实现Myinterface的method3方法,所以类Myclass必须声明为抽象类(abstract)。我们必须定义Myclass的一个子类,来实现接口Myinterface中声明的剩余的方法method3().
3.接口的扩展
public interface interface3 extends interface1,interface2
{
//接口体
}
现在,接口interface3具有interface1,interface2的所有的成员方法和变量。
4、抽象类
抽象类是其中仅定义了部分实现的类。在类中,没有实现的方法也要标记为abstract。
在java中,如下方法不能定义为抽象方法:
*构造方法
*静态方法
*私有方法
和借口类似,抽象类也不能直接用new运算符实例化一个对象。任何派生与抽象类的子类,要么完全实现所有的方法,要么声明自己也是一个抽象类。
据个例子:
public abstract class Animal
{
private String type;
public abstract void sound();//抽象方法
public Animal(String atype)
{
type=atype;
}
public String toString()
{
return "This animal is"+type;
}
}
分享到:
相关推荐
C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例
主要介绍接口与抽象类的区别,为那些困惑的人指点迷津。
Java接口与抽象类的课件,适合初学者,主要对接口与抽象类进行简要介绍,PPT版本。
该资源对接口与抽象类作了详细分析与比较,相信你看了之后,会彻底的明白了,java学习更上一层楼
JAVA:抽象类和接口 接口与抽象类 接口与抽象类
接口与抽象类区别PPT优秀资料.ppt
本文简要论述了接口与抽象类之间的区别,适合初学编程的同学
接口与抽象类的区别java基础一些东西,这些东西在面试中是常考的。大家可以看看
本文件归纳了Java语言的接口类与抽象类的各自要点与同异对比。
很清楚的解释了接口与抽象类,和类的组织结构。
特征之接口与抽象类PPT学习教案.pptx
接口与抽象类的区别 抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼吸。 动物类要有呼吸方法。怎么呼吸就是子类的事了。 现在有很多讨论和建议提倡用interface代替abstract类,两者从...
2.接口与抽象类的介绍他们之间的异同点及接口是项目分层与618大促接口的实现.docx
circle Rectangle等类在接口中计抽象类中的用法 抽象类 接口多态 public class Polymorphism { public static void main(String args[]) { Triangle t=new Triangle(5.0,2.0); t.show_area(); Rectangle r=...
抽象类与接口的区别,抽象类与接口的具体应用
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
大家都容易把这两者搞混,我也一样,在听李建忠老师的设计模式时,他也老把抽象类说成接口,弄的我就更糊涂了=
2、定义抽象类Shape,抽象方法为showArea(),再定义矩形类Rectangle,正方形类Square,圆类 Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用showArea方法;定义接口DiagArea,其中包含方法...