美文网首页javaalready
java 中的抽象类、接口

java 中的抽象类、接口

作者: 暴躁程序员 | 来源:发表于2022-02-10 17:59 被阅读0次

抽象类 abstract

在继承中,父类(抽象类)定义抽象方法签名(无方法体),且子类必须重写父类的抽象方法
即:父类(抽象类)定义了方法规范,子类必须执行父类(抽象类)定义的方法规范

在父类(抽象类)中,定义抽象方法签名 methodName()

abstract class ClassName {
    public abstract void methodName();
}

在子类中,必须重写 methodName() 方法

class ChildrenClassName extends ClassName {
    @Override
    public void methodName() {
        // 重写的方法体
    }
}

特点:抽象类无法被实例化成对象,只能用于继承

接口 interface

  1. 类实现接口
    接口定义的方法默认的都是 public abstract 公共抽象方法,且接口中不能定义属性字段
    即:接口只是定义了方法规范,实现接口的类必须执行接口定义的方法规范

定义接口(方法前的 public abstract 修饰词默认省略)

interface InterfaceName {
    void method1();
    String method2();
}

定义实现接口的子类 (使用 implements 关键词来实现接口)

class ClassName implements InterfaceName {
    @Override
    public void method1() {
        // 重写的方法体
    }

    @Override
    public String method2() {
        // 重写的方法体
    }
}

一个类不可继承多个类,但是可以实现多个接口

class ClassName implements InterfaceName1 InterfaceName2 InterfaceName3{}
  1. default 关键词,解决接口新增方法必须重写所有实现它的子类的问题
    因为接口的方法,默认的都是 public abstract 公共抽象类,所以所有实现此接口的子类必须重写此接口的所有方法,所以 按需重写很重要

在接口中使用 default 修饰的方法,可以不必重写

interface InterfaceName {
    default void method1(); 
    String method2();
}
  1. 接口的继承
    和class继承类似,一个interface可以通过 extends 关键词继承另一个interface
interface InterfaceName1 {
    void method1();
}

interface InterfaceName2 extends InterfaceName1 {
    void method2();
}

特点:接口无法被实例化成对象

相关文章

  • Java基础-抽象类和接口

    抽象类和接口也是 Java 面试中常考的,下面就来总结一下抽象类和接口的相关知识。 抽象类是类,Java 中类是单...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • 1.抽象类与接口

    抽象类(abstract) 接口(interface) kotlin中接口可以继承接口 java8之前接口方法是不...

  • Java抽象类和接口类

    Java中接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能解决哪些编程...

  • 第18条:接口优于抽象类

    java中可以用来定义允许多个实现的类型有两种:接口和抽象类。 接口和抽象类的区别: 1,抽象类中可以存在某些方法...

  • 接口类&抽象类

    java的接口类和抽象类的特点 java中抽象类的特点: 抽象类和抽象方法必须用关键字abstract修饰 2.如...

  • java中级开发必知

    (一)Java 1.接口和抽象类的区别 ①抽象类里可以有构造方法,而接口内不能有构造方法。 ②抽象类中可以有普通成...

  • Java8以后,抽象类和接口该怎么选?

    本文将对jdk1.8以后的接口和抽象类进行讨论,假定读者已经了解java中接口(interface)和抽象类(ab...

  • scala的Trait

    Trait基础 scala 中的Trait和Java中的接口(interface)极其类似 接口是彻底的抽象类,所...

  • Java面向对象之抽象类、接口和多态

    抽象类 Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类抽象类 接口 Java提供了关键字inter...

网友评论

    本文标题:java 中的抽象类、接口

    本文链接:https://www.haomeiwen.com/subject/rdfokrtx.html