醴陵微信公众号开发【醴陵网络推广】醴陵建站、醴陵网站维护、醴陵网页制作、醴陵微信小程序代运营公司-网站优化-网站建设【企业网站制作|网页设计】- 高端网站建设 - 书生商友信息科技-

全国热线:400-111-6878

网站建设推广专家

醴陵微信公众号开发【醴陵网络推广】醴陵建站、醴陵网站维护、醴陵网页制作、醴陵微信小程序代运营公司

发表日期: 2021-03-26 11:24:28 浏览次数:134


醴陵微信公众号开发【醴陵网络推广】醴陵建站、醴陵网站维护、醴陵网页制作、醴陵微信小程序代运营公司


醴陵市,为湖南省辖县级市,由株洲市代管,地处湖南省东部,总面积2156.46平方千米,醴陵市东邻江西省萍乡市湘东区、上栗县,北接浏阳市,西倚株洲市芦淞区、渌口区,南界攸县。截至2018年末,醴陵市辖19镇、4街道办事处、1个经济开发区、1个示范区,户籍人口105.3万。

醴陵市拥有渌江书院、宋名臣祠、醴泉古井、状元芳洲、文笔奇峰、云岩寺等名胜古迹。醴陵市境内浙赣复线横贯东西,醴(陵)茶(陵)线连通南北,距株洲站仅40千米,沪昆高铁、沪昆高速、106国道、320国道纵横交错,市区距长沙黄花国际机场90千米。 [1] 

2019年,醴陵市实现地区生产总值716.4亿元,实现财政总收入72.92亿元。 [2]  2020年度真抓实干成效明显,2021年1月29日被湖南省人民政府公布为推动高质量发展成效明显的县市区,给予100万元标准奖励。


13.2.5 Java 8新特性默认方法和静态方法

在Java 8之前,尽管Java语言中接口已经非常优秀了,但相比其他面向对象的语言而言Java接口存在如下不足之处:

  1. 不能可选实现方法,接口的方法全部是抽象的,实现接口时必须全部实现接口中方法,哪怕是有些方法并不需要,也必须实现。

  2. 没有静态方法。

针对这些问题,Java 8在接口中提供了声明默认方法和静态方法的能力。接口示例代码如下:

//InterfaceA.java文件package com.a51work6;public interface InterfaceA {

    void methodA();

    String methodB();

    // 默认方法
    default int methodC() {
        return 0;
    }

    // 默认方法
    default String methodD() {
        return "这是默认方法...";
    }

    // 静态方法
    static double methodE() {
        return 0.0;
    }}复制代码

在接口InterfaceA中声明了两个抽象方法methodA和methodB,两个默认方法methodC和methodD,还有声明了静态方法methodE。接口中的默认方法类似于类中具体方法,给出了具体实现,只是方法修饰符是default。接口中静态方法类似于类中静态方法。

实现接口示例代码如下:

//ABC.java文件package com.a51work6.imp;import com.a51work6.InterfaceA;public class ABC implements InterfaceA {

    @Override
    public void methodA() {
    }

    @Override
    public String methodB() {
        return "实现methodB方法...";
    }

    @Override
    public int methodC() {
        return 500;
    }}复制代码

实现接口时接口中原有的抽象方法在实现类中必须实现。默认方法可以根据需要有选择实现(覆盖)。静态方法不需要实现,实现类中不能拥有接口中的静态方法。

上述代码中ABC类实现了InterfaceA接口,InterfaceA接口中的两个默认方法ABC只是实现(覆盖)了methodB。

调用代码如下:

//HelloWorld.java文件package com.a51work6.imp;import com.a51work6.InterfaceA;public class HelloWorld {

    public static void main(String[] args) {

        //声明接口类型,对象是实现类,发生多态
        InterfaceA abc = new ABC();

        // 访问实现类methodB方法
        System.out.println(abc.methodB());

        // 访问默认方法methodC
        System.out.println(abc.methodC());               ①

        // 访问默认方法methodD
        System.out.println(abc.methodD());               ②

        // 访问InterfaceA静态方法methodE
        System.out.println(InterfaceA.methodE());        ③
    }}复制代码

运行结果:

实现methodB方法...500这是默认方法...0.0复制代码

从运行结果可见,代码第①行调用默认方法methodC,是调用类AB中的实现。代码第②行调用默认方法methodD,是调用接口InterfaceA中的实现。代码第③行调用接口静态方法,只能通过接口名(InterfaceA)调用,不能通过实现类ABC调用,可以这样理解接口中声明的静态方法与其他实现类没有任何关系。

13.3 抽象类与接口区别

经过前面的学习,广大读者应该对于抽象类和接口有所了解,但可能会有这样的疑问抽象类和接口有什么区别?本节就回答这个问题。

归纳抽象类与接口区别如下:

  1. 接口支持多继承,而抽象类(包括具体类)只能继承一个父类。

  2. 接口中不能有实例成员变量,接口所声明的成员变量全部是静态常量,即便是变量不加public static final修饰符也是静态常量。抽象类与普通类一样各种形式的成员变量都可以声明。

  3. 接口中没有包含构造方法,由于没有实例成员变量,也就不需要构造方法了。抽象类中可以有实例成员变量,也需要构造方法。

  4. 抽象类中可以声明抽象方法和具体方法。Java 8之前接口中只有抽象方法,而Java 8之后接口中也可以声明具体方法,具体方法通过声明默认方法实现。

提示 学习了接口默认方法后,有些读者还会有这样的疑问,Java 8之后接口可以声明抽象方法和具体方法,这就相当于抽象类一样了吗?在多数情况下接口不能替代抽象类,例如当需要维护一个对象的信息和状态时只能使用抽象类,而接口不行,因为维护一个对象的信息和状态需要存储在实例成员变量中,而接口中不能声明实例成员变量。

本章小结

通过对本章的学习,读者可以了解抽象类和接口的概念,掌握如何声明抽象类和接口,如何实现抽象类和接口。了解Java 8之后的接口的新变化。熟悉抽象类和接口的区别


醴陵微信公众号开发醴陵网络推广醴陵建站、醴陵网站维护、醴陵网页制作、醴陵微信小程序代运营公司


上一条:醴陵网站制作【醴陵网站优化】醴陵建网站、醴陵微信公众号运营、醴陵网页设计、醴陵微信小程序商城
下一条:醴陵网站推广【醴陵办理400电话】醴陵SEO优化、醴陵微信公众号APP客户端小程序开发、醴陵网站托管、醴陵APP开发
网站制作
小程序制作
网站优化
网站开发
400电话办理
网络推广
网站建设
网店装修
微信公众号开发
网页设计
网络公司
域名企业邮箱
服务器空间
网站案例报价
百科问答
编辑排版美工
App软件开发
百度推广
代运营托管
logo设计
网络全网营销
网站备案
网站定制
小程序开发公司
首页
电话
立即预约