Java基础之面向对象——抽象类、接口、枚举
抽象类
越是处于顶层定义的类,实际上可以进一步地进行抽象。抽象类里可以有抽象方法(也可以没有)。抽象类完全由子类来实现,父类中不需要提供实现。例如,对于该父类一定有子类实现该父类的抽象方法
子类实现抽象方法
抽象类由于不是具体的类定义(它是类的抽象)可能会存在某些方法没有实现,因此无法直接通过new关键字来直接创建对象,要使用抽象类,只能去创建它的子类对象。抽象类一般只做继承使用,但抽象类也可以作为子类
不过值得注意的是,抽象类的访问权限不能是private,因为抽象方法一定要由子类实现,不然抽象类就没意义了
枚举
Java中的枚举是一种类型,顾名思义:就是一个一个列举出来。所以它一般都是表示一个有限的集合类型,它是一种类型。通过枚举可以用使用定义好的状态。例如,定义一个枚举类
使用枚举类也很方便,就像使用普通类型那样
枚举是普通类,也可以给枚举添加独有的成员方法
这样就可以按照中文打印了
接口
实现接口中的抽象方法
接口不同于继承,一个类可以实现多个接口
接口和抽象类一样不能创建,但是可以将接口实现类的对象以接口的形式去使用
接口同样支持向下转型
从Java8开始,接口中可以存在方法的默认实现,如果方法在接口中存在默认实现,那么实现类中不强制要求进行实现
接口不同于类,接口中不允许存在成员变量和成员方法,但是可以存在静态变量和静态方法
跟普通的类一样,可以直接通过接口名.的方式使用静态内容,例如
接口是可以继承其他接口的,而且接口没有继承数量限制,接口支持多继承
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)