如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
JavaSE021抽象类一、抽象类(abstractclass)使用了abstract关键字所修饰的类叫抽象类。抽象类无法实例化,也就是说,不能new出来一个抽象的对象(实例)。二、抽象方法(abstractmethod)使用abstract所修饰的方法叫做抽象方法。publicclassAbstractTest{publicstaticvoidmain(String[]args){}}abstractclassT{//有声明无实现publicabstractvoidmethod();}注意:有{}与没{}是两个完全不同的概念。有{}表示有方法实现,没有{}则表是无方法实现。抽象类与抽象方法之间的关系1、抽象方法需要定义在抽象类当中。相对于抽象方法,之前所定义的方法叫做具体方法(有声明有实现)。2、如果一个类包含了抽象方法,那么这个类一定是抽象类。3、如果某个类是抽象类,那么该类可以包含具体方法(有声明有实现)。publicclassAbstractTest{publicstaticvoidmain(String[]args){}}abstractclassT{//有声明无实现publicabstractvoidmethod();//具体方法publicvoidtest(){System.out.println("test");}}4、如果一个类中包含了抽象方法,那么这个类一定要声明成abstractclass,也就是说,该类一定是抽象类;反之,如果一个类是抽象类,那么该类即可以包含抽象类,也可以包含具体方法。5、无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。在子类继承父类(父类是个抽象类)的情况下:子类必须要实现父类中所定义的所有抽象方法,否则该子类要声明成一个abstractclass。publicclassAbstractTest{publicstaticvoidmain(String[]args){}}abstractclassT{//有声明无实现publicabstractvoidmethod();//具体方法publicvoidtest(){System.out.println("test");}}classRextendsT{publicvoidmethod(){System.out.println("method");}}三、抽象类到底起个什么样的作用呢?一个方法光有声明,没有实现,有什么价值呢?解说:光有声明没有实现,肯定是推迟到子类当中去实现的。父类肯定实现不了了。我要实现这个方法,肯定要推迟到子类里面去实现。原则:在父类里面仅仅是定义了一个方法声明,这个方法声明可以写些注释,告诉这个类的实现者,这个方法到底要干嘛用的,干什么用的,但具体怎么去做这件事情,是由具体的子类实现者他来提供的。那么对于一个父类来说,它可能有多个子类,不同的子类可能对于这个父类来说,有不同的实现方式。publicclassTest2{publicstaticvoidmain(String[]args){Shapeshape=newTriangle(10,6);intarea=shape.computerArea();System.out.println("triangleareais:"+area);shape=newRectangle(8,6);area=shape.computerArea();System.out.println("Rectangleareais:"+area);}}//在抽象类里面定义了一个方法,它只有一个抽象方法,计算形状的面积,但是具体什么形状,其实是由子类本身来决定的。公式也是由子类本身来去决定的。abstractclassShape{publicabstractintcomputerArea();//计算形状面积}classTriangleextendsShape{intwidth;intheight;publicTriangle(intwidth,intheight){this.width=width;this.height=height;}publicintcomputerArea(){return(this.width*this.height)/2;}}classRectangleextendsShape{intwidth;intheight;publicRectan