当前位置: 首页 > 科技观察

一篇文章带你了解Java中的抽象类和接口知识

时间:2023-03-12 19:34:03 科技观察

一、抽象类1、什么是抽象类?任何用abstract关键字修饰的类都是抽象类。2.假设定义了Animal类,定义了一个shout()方法来表示动物发出的声音。我们知道不同的动物会发出不同的声音,而shout()方法并不能准确描述动物发出的声音。.在定义一个类的时候,通常会定义一些方法来描述这个类的行为特征。有时我们无法确定这些方法的实现方式。定义一个抽象方法,并用abstract关键字修饰,例如如下:abstractvoidshout();//定义一个抽象方法定义一个抽象类,并用abstract关键字修饰,例如,如下://DefineanabstractclassAnimalAbstractclassAnimal{abstractvoidshout()//定义抽象方法}3、抽象类的特点:①具有抽象方法的类只能定义为抽象类,而抽象类可以没有抽象方法。②抽象类是没有具体对象的概念类,也就是说抽象类不能实例化为对象。③如果一个类包含一个未实现的抽象方法,那么这个类必须使用abstract声明为抽象类。④抽象方法不能有方法体。4.如何实现一个抽象类的例子//定义Fruit类abstractclassFruit{//定义抽象方法info()abstractvoidinfo();}//定义Cherry继承Fruit类classCherryextendsFruit{//实现抽象方法info()voidinfo(){System.out.print("我是一颗重66g的樱桃!");}}publicclassp25{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubCherryc=newCherry();//实例化Cherry对象c.info();//调用info()方法}}结果是:我是一颗66g重的樱桃!从上面的代码,首先定义一个Fruit类,在这个类中定义抽象方法info(),然后定义Cherry类继承Fruit类,实现抽象方法info(),实例化Cherry对象,并调用其info()方法。二、接口1、接口中所有的变量都是常量,所有的方法都是抽象方法。2、定义接口时,需要用interface关键字声明:例如:interfaceFruit{intMAX_WEIGHT=1000;//全局常量voidprintInfo();//定义一个抽象方法}从上面的例子我们可以看出定义了抽象方法printInfo()没有使用abstract关键字进行修饰。接口定义方法时,默认用“publicabstract”修饰,表示抽象方法。当接口的变量默认用“publicstaticfinal”修饰时,表示全局常量。3、接口中的所有方法都是抽象方法。您不能通过实例对象调用接口中的方法。您需要定义一个类并使用implements关键字来实现接口中的所有方法。4.接口所有方法实现示例//定义Printer接口interfacePrinter{intmax_line=20;//定义全局常量voidprintRun();//定义抽象方法pirntRun()voidprintData();//定义抽象methodprintData()}//Colorprinter类实现了Printer接口classColorprinterimplementsPrinter{//实现了printRun()方法publicvoidprintRun(){System.out.println("Thecolorprinterisstarting");}//实现了printData()方法publicvoidprintData(){System.out.println("Thecolorprinterisprinting");}}publicclassp26{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubColorprinterc=newColorprinter();//创建一个Colorprinter类的实例对象c.printRun();//调用Colorprinter类的printRun()方法c.printData();//调用Colorprinter类的printData()方法}}输出结果为:colorprinterisstartingandthecolorprinterisprinting从上面的代码,第一个t是定义Printer接口,定义全局常量和两个抽象方法printRun()和printData(),然后定义Colorprinter类,使用implements关键字实现Printer接口。我们发现Colorprinter类可以实现Printer接口,可以实例化。这是类和接口。之间的关系。3.小结本文主要介绍抽象类和接口。抽象类是用abstract关键字修饰的类,抽象方法是用abstract关键字修饰的方法。接口中的所有变量都是常量,所有方法都是抽象方法。定义接口时,需要用interface关键字声明。抽象类和接口用例以帮助理解用法。希望本文的学习对您有所帮助!