栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

抽象类 接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

抽象类 接口

把一个方法声明为abstract,表示它是一个抽象方法,本身没有任何实现语句,只是定义方法签名,让子类去覆写。但抽象方法的类必须得是抽象类。抽象类无法被实例化。

abstract class Person {
    public abstract void run();
}

Person p = new Person(); // 编译错误
抽象类

抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的,否则编译会报错。


面向抽象编程的本质就是:

上层代码只定义规范(例如:abstract class Person);

不需要子类就可以实现业务逻辑(正常编译);

具体的业务逻辑由不同的子类实现,调用者并不关心。

接口
  • 如果一个抽象类没有字段,所有方法全部都是抽象方法,可以把该抽象类改写为接口:interface。
interface Person {
    void run();
    String getName();
}
  • interface,就是比抽象类还要抽象的纯抽象接口,因为它连字段都不能有。因为接口定义的所有方法默认都是public abstract的。

在Java中一个类只能继承自一个类,但是一个类可以被多个类继承。而且一个类可以实现多个interface。

class Student implements Person, Run { // 实现了两个interface
    ...
}
接口继承

一个interface可以继承自另一个interface。

在接口中可以定义default方法。

default方法:当我们需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是default方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。(就是本来需要实现每一个接口中的方法,但是default的方法无需去实现)

interface的字段只能是public static final类型

静态字段
  • 对于静态字段,无论修改哪个实例的静态字段,效果都一样。所有实例的静态字段都会被修改,原因是静态字段并不属于实例。
  • 一般最好用类名来访问静态字段。可以把静态字段理解为描述class本身的字段(非实例字段)。
ming.number = 88;
System.out.println(hong.number);


Person.number = 99;
System.out.println(Person.number);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/686452.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号