Java基础之面向对象——抽象类、接口、枚举

抽象类

      越是处于顶层定义的类,实际上可以进一步地进行抽象。抽象类里可以有抽象方法(也可以没有)。抽象类完全由子类来实现,父类中不需要提供实现。例如,对于该父类一定有子类实现该父类的抽象方法

 

 

 子类实现抽象方法

 

 抽象类由于不是具体的类定义(它是类的抽象)可能会存在某些方法没有实现,因此无法直接通过new关键字来直接创建对象,要使用抽象类,只能去创建它的子类对象。抽象类一般只做继承使用,但抽象类也可以作为子类

 

 不过值得注意的是,抽象类的访问权限不能是private,因为抽象方法一定要由子类实现,不然抽象类就没意义了

 

枚举

      Java中的枚举是一种类型,顾名思义:就是一个一个列举出来。所以它一般都是表示一个有限的集合类型,它是一种类型。通过枚举可以用使用定义好的状态。例如,定义一个枚举类

 

 使用枚举类也很方便,就像使用普通类型那样

 

 枚举是普通类,也可以给枚举添加独有的成员方法

 

 这样就可以按照中文打印了

 

 接口

       接口甚至比抽象类还抽象,它只代表某个确切的功能!也就是只包含方法的定义,甚至都不是一个类!接口一般只代表某些功能的抽象,接口包含了一些列方法的定义,类可以实现这个接口,表示类支持接口代表的功能(类似于一个插件,只能作为一个附属功能加在主体上,同时具体实现还需要由主体来实现)。实际上接口的目标就是将类所具有某些的行为抽象出来。比如说,对于人类的不同子类,学生和老师来说,他们都具有学习这个能力,既然都有,那么就可以将学习这个能力,抽象成接口来进行使用,只要是实现这个接口的类,都有学习的能力。例如,

 

 实现接口中的抽象方法

 

 接口不同于继承,一个类可以实现多个接口

 

 接口和抽象类一样不能创建,但是可以将接口实现类的对象以接口的形式去使用

 

 接口同样支持向下转型

 

 从Java8开始,接口中可以存在方法的默认实现,如果方法在接口中存在默认实现,那么实现类中不强制要求进行实现

 

 接口不同于类,接口中不允许存在成员变量和成员方法,但是可以存在静态变量和静态方法

 

 跟普通的类一样,可以直接通过接口名.的方式使用静态内容,例如

 

 接口是可以继承其他接口的,而且接口没有继承数量限制,接口支持多继承

 

posted @   自由和冒险  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示