zoukankan      html  css  js  c++  java
  • 关于JAVA中的抽象类和接口中常量和变量定义的原因

    转载自https://my.oschina.net/cdzsc/blog/86107

    在抽象类中,可以包含一个或多个抽象方法;但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加“抽象”。

    1. 为什么接口中只能定义static final:

        1.1 static(这时暂且认为是变量)解释:因为一个类可以实现多个接口,如果一个类同时实现了多个接口而每个接口中都定义了同一个变量的话就会产生在类中不知道是哪个接口中的变量了,所以必须定义成static的,每个接口拥有各自的这个变量。

        1.2 final解释:因为一个接口可以被多个类实现,如果不定义成final的话每个实现了该接口的类都去改变这个变量就会产生错误,所以必须定义成final。

    public interface SataHdd{
        //连接线的数量
        public static final int CONNECT_LINE=4;
        //写数据
        public void writeData(String data);
        //读数据
        public String readData();
    }

    注意:接口中声明的成员变量默认都是 public static final 的,必须显示的初始化。因而在常量声明时可以省略这些修饰符。

    2. 为什么抽象类中可以定义变量:

        因为每个类只能有一个父类,就不会产生上述的接口中的一些问题。

  • 相关阅读:
    Nodejs初阶之express
    windows 下安装nodejs及其配置环境
    NodeJS、NPM安装配置与测试步骤(windows版本)
    nodejs npm常用命令
    系列文章--Node.js学习笔记系列
    系列文章--8天学通MongoDB
    python 特征选择 绘图 + mine
    TCP/IP 详解卷一
    CNN检测模型统计检出率
    leetcode 572. Subtree of Another Tree
  • 原文地址:https://www.cnblogs.com/bpynfy/p/5984177.html
Copyright © 2011-2022 走看看