如何理解java中的抽象类,在java语言中,关于抽象类的说法
目录
Java抽象基础知识抽象的定义抽象方法的使用:抽象类:定义抽象类的一些注意事项千千茫茫人海的总结,感谢这第二次看到这里。希望我的能对你的有所帮助!互相鼓励!
愿你以后继续爱下去,去山海!
Java抽象基础知识
抽象
抽象是从众多事物中提取共同的、本质的特征,抛弃其非本质特征的过程。具体地说,抽象是人们在实践的基础上,通过去粗取精、去伪存真,由一物到另一物、由表及里,加工制作丰富的感性材料,形成概念、判断、推理等反映事物本质和规律的思维形式的方法。
抽象的定义
在继承的过程中,我们知道父类的方法可以被子类重写,每个子类都有不同的实现。就好像所有的动物都有吃的方式,每种动物的子类可能吃的食物都不一样,但是这又导致了什么呢?
定义父类的方法体没有任何意义,因为子类调用方法时,调用的是自己被覆盖的方法,而不是父类的方法。
也就是说,父类声明方法,子类可以分别实现方法。意味着父类可能不知道具体实现是什么,但是很清楚需要什么方法。所以方法父类只需要提供一个方法签名,不需要方法体,具体实现留给子类自己。
我们称这个方法为无方法体抽象方法。根据Java语法,包含抽象方法的类是抽象类。
抽象方法:没有方法体的方法。类:包含抽象方法的类。定义好的关键词:抽象,接下来看看怎么用!
abstract的使用
抽象就是抽象的意思。它用于修改方法、方法和类。修改后的方法是抽象方法,修改后的类是抽象类。
00-1010 abstract关键字用来修饰一个方法,就成了抽象方法。抽象方法只包含方法名,没有方法体。
定义格式:
权限修饰符抽象返回值类型方法名(参数列表);
代码如下:
公共抽象void eat();
00-1010如果一个类包含抽象方法,那么这个类必须是抽象的。
注意:抽象类不一定有抽象方法,但是有抽象方法的类必须定义为抽象类。
定义格式:
抽象类类名{}
代码如下:
公共抽象类动物{公共抽象void eat();}
抽象方法:
我们把之前的动物类转化为抽象类,然后吃的方法也转化为抽象方法。
注意:一旦定义为抽象类,当子类继承父类时,必须重写内部的抽象方法。
定义抽象父类:
包com . na . POJO;/* * *先定义一个抽象父类——Animal类* animals有一个抽象方法可以吃*/public抽象类Animal {//定义为抽象方法后,就不需要实现方法实体了!公共抽象void eat();}定义子类:
猫:
包com . na . POJO;/* * *定义猫继承抽象animal类,*然后重写里面的进食行为,因为猫也有进食行为,但是猫喜欢吃罐头*/public class cat extends animal {//抽象类的方法必须重写,否则编译会失败。Public eat () {system.out.println(小咪咪喜欢吃鱼罐头!);}/* * *加一个猫特有的玩球方法()*/public void play ball(){ system . out . println(小喵喵喜欢球!);}}小狗:
包com . na . POJO;/* * *定义狗继承抽象动物,*重写里面的进食行为,因为狗也有进食行为,但是狗喜欢啃骨头*/public class Dog extends
Animal{ // 抽象类的方法必须重写,不然编译会不通过。 public void eat() { System.out.println("小狗狗都爱啃骨头!"); } public void walk() { System.out.println("小狗在被我溜着!"); }}定义测试类:
package com.na;import com.na.pojo.Animal;import com.na.pojo.Cat;import com.na.pojo.Dog;public class Demo { public static void main(String[] args) { // 创建抽象类,抽象类不能创建对象//Animal animal = new Animal();// animal.eat(); // 创建小猫咪 Cat cat = new Cat(); cat.eat(); cat.playBall(); Dog dog = new Dog(); dog.eat(); dog.walk(); }}
得到结果:
小喵咪都喜欢吃鱼罐头!小喵咪都喜欢小球!小狗狗都爱啃骨头!小狗在被我溜着!
类的大致结构:
注意:假设抽象类可以创建对象,但是呢,里面的抽象方法是没有方法体给我们去实现,从而程序也是无法执行,所以不让我们创建对象。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。