zoukankan      html  css  js  c++  java
  • java抽象类和接口


    1.抽象类 

      抽象类在概念上描述的是抽象世界,抽象类刻画了公有行为的特征,并且通过继承机制传送给它的派生类。抽象类使用关键字abstract 修饰,语法如下:

    abstract class 类名{
    	类体;
    }
    

      抽象方法是指在抽象类中某些成员方法没有具体的实现,只有方法声明。抽象方法使用关键字abstract 修饰,格式如下:

        public abstract 返回类型 方法名([参数列表]);

      抽象类和抽象方法的具体规则如下:

        1.用abstract 关键字修饰一个类时,该类叫做抽象类,用abstract类修饰一个方法时,该方法叫做抽象方法。

        2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

        3.抽象方法只需声明,不需实现。

        4.在抽象类中可以有数据成员,可以有零个或多个抽象方法,也可以由非抽象方法。

        5.抽象类不能被实例化。

        6.static、private、final 方法不能是抽象的。

        7.final 类型的类不能包含抽象方法。

        8.抽象类的子类必须实现父类中所有的抽象方法,否则,该类必须定义为抽象类。


    2.接口

      2.1接口的定义

      接口是特殊的抽象类。接口的出现弥补了java只支持单继承的不足,它可以用来完成多继承的一些功能。在java中,使用关键字interface 来定义接口,借口的定义和类的定义很相似,分为接口的声明和接口体。但在接口中,所有的方法都是抽象的,所有的变量都是static常量,语法如下:

    [修饰符] interface 接口名 [extends 父接口列表]{
    	静态常量;
    	方法声明;
    }
    

      注:

        1.接口的修饰符只有public 和默认修饰符两种。

        2.接口名:是所创建的该接口的名字,一般用能反映该接口实际意义的英文名词表示。

        3.接口中的数据成员默认是 public static final 修饰的,即接口中的数据成员是全局静态常量,必须在定义时赋予常量初始值。

        4.在接口中所有的方法都是 public abstract 的。

        5.接口只能继承接口,不能继承类,但通过接口可以实现多重继承。

        6.接口没有构造方法,他们不能直接被实例化,但允许有接口类型的变量。

      2.2接口的实现

      在java中,使用implements关键字来实现接口,语法如下:

    public class 类名 [extends 父类] implements 接口列表{
    	类体;
    }
    

      


    3.抽象类和借口的异同

      相同点:1.都不能被实例化

          2.都可以应用于多态

      不同点:1.反映的设计理念不同

          2.接口支持多继承;抽象类不能实现多继承。

          3.接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。

          4.接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。

          5.接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。

          6.接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。  

          7.接口可以作用于值类型和引用类型;抽象类只能作用于引用类型。


  • 相关阅读:
    MyBatis 自动关闭 session
    Sublime相关操作及配置
    CentOS yum换源并配置SSH
    SpringSecurity认证流程
    ES模块化的导入和导出
    Promise学习
    axios的使用
    SpringSecurity注解的使用
    Webpack笔记
    JAVA工具类
  • 原文地址:https://www.cnblogs.com/xiaonanman/p/6751827.html
Copyright © 2011-2022 走看看