美文网首页
OnJava8笔记4 -- 抽象类和接口

OnJava8笔记4 -- 抽象类和接口

作者: 给点阳光我就灿烂_ab56 | 来源:发表于2020-04-17 15:40 被阅读0次

抽象类和接口

抽象类

  • 被abstract修饰的方法为抽象方法,只能声明,不能有具体实现,具体实现在子类中
  • 一个类中只要有一个abstract方法就得声明为抽象类
  • 抽象类不能被创建实例,会编译错误
  • 可以将一个不包含抽象方法的类声明为抽象类,这样做是为了阻止类的具体实例的创建
abstract class Basic {
    abstract void unimplemented();
}
  • 抽象类的子类必须为所有抽象方法提供具体实现。如果不这么做,新的子类就必须也要声明为抽象类,同时方法也要声明为抽象方法

    abstract class Basic2 extends Basic {
        int f() {
            return 111;
        }
    
        abstract void g() {
            // unimplemented() still not implemented
        }
    }
    
  • 抽象类中的抽象方法默认为public权限,且只能使用public 和 protected 修饰抽象方法,provate被禁止(因为provate方法也不能被继承呀)

接口

由于一个类只能实现一个抽象方法,故出现了接口,一个类可以实现多个接口

接口的创建

Java8之前和之后的接口有些许变化。

共性
  • 接口的默认权限是public,且只能是public
  • 接口不允许存在对象属性,可以有静态属性。在声明时就初始化好的变量默认是 static & final 的。字段必须被初始化,可以使用非常量表达式初始化
  • 接口也能继承父接口,且和类继承不一样的是,一个接口可以继承多个接口
Java8之前
public interface PureInterface {
    int value = 1; // 必须被初始化,否则编译错误
    int m1(); 
    void m2();
    double m3();
}
  • 接口只允许抽象方法
  • 接口中的方法不能有具体实现,都是抽象方法
Java8之后
  • 提供了默认方法:使用default修饰,为接口方法的实现提供了默认实现

    public interface DefaultInterface {
        default void defaultFunc() {
            System.out.println("默认方法");
        }
    }
    
  • 支持接口中的静态方法

实现多个接口

  • 多个接口中有相同的方法名和相同的参数列表,会编译报错。不过可以Override这个方法,重写之后新方法覆盖了接口。
  • 不同接口中有相同的方法名和不同的参数列表(重载),可以使用(Java8新特性)

相关文章

  • OnJava8笔记4 -- 抽象类和接口

    抽象类和接口 抽象类 被abstract修饰的方法为抽象方法,只能声明,不能有具体实现,具体实现在子类中 一个类中...

  • Java基础 (7) 抽象类和接口

    抽象特性的具体体现方式。1)抽象类区别和接口的区别2)抽象类的意义3)抽象类与接口的应用场景4)抽象类是否可以没有...

  • 5.5-全栈Java笔记:接口的定义和使用

    接口interface 接口的作用 为什么需要接口?接口和抽象类的区别? 接口就是比“抽象类”还“抽象”的“抽象类...

  • java的final关键字

    ——修饰类、接口和抽象类 final可以修饰方法,属性,类!但是不能修饰接口,抽象类;因为 接口和抽象类本身就是...

  • 接口和抽象类的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类...

  • 抽象类和接口的区别

    以下两篇文章介绍了接口和抽象类的概念接口概念抽象类概念 抽象类和接口的区别: 抽象类:需要使用abstract关键...

  • 2020-06-27【抽象类与接口】

    1,多态 2,接口 3,类与接口的关系 4,抽象类与接口的关系 5,形参和返回值

  • 接口和抽象类

    接口和抽象类的区别? 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制...

  • Android_开发_Day12_抽象类和接口

    Android_开发Day12抽象类和接口 目的: 知道什么是抽象类,什么是接口,学会抽象类的使用,与接口的使用。...

  • Java--接口和抽象类

    ·为什么需要接口?接口和抽象类的区别?  接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束...

网友评论

      本文标题:OnJava8笔记4 -- 抽象类和接口

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