Java面向对象(四)
2022/2/25 14:22:03
本文主要是介绍Java面向对象(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java面向对象(四)
1.抽象类
概括:抽象类中可以有一些方法但又无须提供它的实现,通过子类实现抽象类中的抽象方法。
举例:
abstract class Animal3{ public abstract void shout(); } class Dog3 extends Animal3{ public void shout(){ System.out.println("汪汪"); } } public class Page117 { public static void main(String[] args) { Dog3 dog=new Dog3(); dog.shout(); } }
注意:
- 一个类中包含抽象方法那么它一定是抽象类
- 抽象类中可以不包含抽象方法
- 抽象类不可以被实例化
- 抽象方法没有方法体,不可以被调用,需要在子类中实现抽象方法
2.接口
概括:接口是特殊的抽象类,它不能包含普通方法,内部所有方法都是抽象方法。JDK8中对接口进行了重新定义,接口中除抽象方法外还可以有默认方法和静态方法(也叫类方法),分别用default和static修饰,且两种方法都允许有方法体。与定义类不同的是,定义接口不再使用class关键字,而是使用interface关键字。
语法:
[修饰符] interface 接口名 [extends 父接口1,父接口2,...]{ [public] [static] [final] 常量类型 常量名=常量值; [public] [abstract] 方法返回值类型 方法名([参数列表]); [public] default 方法返回值类型 方法名([参数列表]){ //默认方法方法体 } [public] default 方法返回值类型 方法名([参数列表]){ //静态方法方法体 } }
注意:
- 定义常量时必须进行初始化赋值
- 接口可以同时继承多个父接口
- 定义常量时可省略public static final,接口会默认添加,同理定义抽象方法可以省略public abstract,定义默认方法和静态方法可省略public
静态方法可以通过接口名.方法名调用,而抽象方法和默认方法只能通过接口实现类的实例对象来调用,接口的实现类必须实现接口中的所有抽象方法,通过implements关键字来实现接口,一个类可以在继承另一个类的同时实现多个接口
语法:
[修饰符] class 类名 [extends 父类名] [implements 接口1,接口2,...]{ }
举例:
interface Animal4{ int ID=1; //全局常量 void breathe(); //抽象方法 default void getType(String type){ System.out.println("该动物属于"+type); } static int getID(){ return Animal4.ID; } } class Dog4 implements Animal4{ public void breathe(){ System.out.println("狗在呼吸"); } } public class Page118 { public static void main(String[] args) { System.out.println(Animal4.getID()); Dog4 dog=new Dog4(); System.out.println(dog.ID); dog.breathe(); dog.getType("犬类"); } }
注意:
- 这种情况也是ok的,接口2继承(extend)接口1,类实现(implements)接口2
- 一个类实现接口时,如果它是抽象类,那么只需要实现接口中部分抽象方法即可,否则要实现全部抽象方法
- 一个类可以通过implements同时实现多个接口,
- 一个接口可以通过extends同时继承多个接口
- 一个类继承一个类的同时还可以实现接口,class A extends B implements C{} //先继承再实现
这篇关于Java面向对象(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?