`
jassion
  • 浏览: 13195 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

接口与抽象类

 
阅读更多

接口是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;
}
}

分享到:
评论

相关推荐

    接口与抽象类区别

    接口与抽象类区别 在软件开发中,接口和抽象类是两个常用的概念,但它们之间的区别却让许多人感到困惑。那么,什么是抽象类和接口?它们之间有什么区别?下面,我们就来详细地探讨这个问题。 一、抽象类 抽象类是...

    java中接口与抽象类的详细分析与比较

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键...通过阅读"java中接口与抽象类的详细分析与比较.doc"文档,你将获得更深入的洞察和实践指导,进一步提升你的Java编程能力。

    Java语言的接口与抽象类

    4. 绑定关系:抽象类与子类有从属绑定,接口与实现类之间没有这种绑定。 5. 动态绑定:两者都支持运行时多态,即父类引用指向子类对象。 在使用原则方面: 1. 抽象类:通常用于一组相关子类共享代码,减少代码冗余...

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例 C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

    Java接口与抽象类课件

    Java接口与抽象类的课件,适合初学者,主要对接口与抽象类进行简要介绍,PPT版本。

    Kotlin接口与抽象类的详细解析及应用场景

    接着深入探讨了类与对象的基本用法,并详细讲解了接口和抽象类的作用,包括它们的异同点和组合使用方式。文章通过丰富的示例代码展示了如何在实际编程中利用接口和抽象类来实现多态和代码复用。 适合人群:初学者到...

    Java面向对象编程中接口与抽象类的区别及应用场景

    首先讲解了类与对象的基础知识,然后重点解释了接口和抽象类的定义、实现方法及其各自的优缺点。接着,通过具体的代码示例展示了接口与抽象类的使用场景,特别是它们在实现多态性和代码复用方面的不同之处。最后,...

    接口与抽象类区别PPT优秀资料.ppt

    3. 抽象类与接口的选择 在选择抽象类定义方式时,需要考虑问题领域的本质理解和设计意图是否正确、合理。abstract class 和 interface 之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,但是...

    C#面向对象高级:接口与抽象类的深度解析及应用场景

    内容概要:本文详细介绍了C#面向对象编程中的接口与抽象类的定义、实现及其在实际开发中的应用场景。首先,文章回顾了面向对象编程的基础概念,包括类与对象、封装、继承和多态。接着,详细探讨了接口和抽象类的定义...

    接口与抽象类的入门小程序(C# VS2010 )

    本项目"接口与抽象类的入门小程序"是针对C#开发者,使用Visual Studio 2010编译环境的一个实践教程,旨在帮助初学者理解和掌握这两种关键的类组织结构。 接口(Interface)在C#中是一种完全抽象的类型,它定义了一...

    JAVA:接口与抽象类

    JAVA:抽象类和接口 接口与抽象类 接口与抽象类

    Kotlin接口与抽象类详解及其应用

    最后比较了接口和抽象类的区别,讨论了它们在不同场景下的最佳实践,并探讨了密封类与接口结合使用的优点。 适合人群:有一定Kotlin基础的开发者,特别是对面向对象编程和设计模式感兴趣的程序员。 使用场景及目标:...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计...通过这样的练习,你可以更好地理解和掌握Java中的抽象类与接口,以及它们在实际开发中的应用。在实践中不断尝试和调试,将有助于深化对这两个概念的理解。

    java高级类操作 接口与抽象类的操作

    Java中的高级类操作涉及到抽象类和接口的使用。抽象类是一种不能被实例化的类,它主要用来被其他类继承,定义共有的属性和方法。接口则是一种完全抽象的类型,用于定义一组方法签名,实现多继承的效果。 首先,让...

    接口与抽象类的区别以及一些java基础

    // 接口中的方法只能通过对象调用,不能通过类名调用 }}在Java中,接口和抽象类都是用于实现多态性的重要工具,但它们之间存在显著的区别: 1. **接口(Interface)**: - 接口是一个完全抽象的类型,它只包含...

    特征之接口与抽象类PPT学习教案.pptx

    特征之接口与抽象类PPT学习教案.pptx

    接口与抽象类的主要区别

    在编程领域,接口和抽象类是面向对象设计中两种重要的机制,它们用于定义类的行为和结构。虽然两者在某些方面有相似之处,但它们在概念、实现方式和用途上存在显著差异。 首先,抽象类是一种特殊的类,它不能被实例...

    C#接口与抽象类的详解

    在编程语言中,C#提供了两种机制来实现多态性和代码重用,即抽象类和接口。虽然两者在某些方面有相似之处,但它们在设计理念和使用场景上有显著的差异。 首先,我们来深入理解抽象类。抽象类是一种特殊的类,它不能...

Global site tag (gtag.js) - Google Analytics