抽象类的作用是什么?
发布网友
发布时间:2022-04-24 11:48
我来回答
共4个回答
热心网友
时间:2022-05-07 04:27
1、在面向对象方法中,抽象类主要用来进行类型隐藏。构造出一个固定的一组行为的抽象描述,但是这组行为却能够有任意个可能的具体实现方式。这个抽象描述就是抽象类,而这一组任意个可能的具体实现则表现为所有可能的派生类。模块可以操作一个抽象体。由于模块依赖于一个固定的抽象体,因此它可以是不允许修改的。
2、通过从这个抽象体派生,也可扩展此模块的行为功能。为了能够实现面向对象设计的一个最核心的原则OCP(Open-Closed Principle),抽象类是其中的关键所在。
3、抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
热心网友
时间:2022-05-07 05:45
抽象类的一个功能--不能被实例化。也就是不能被new.
举个生活中的例子
宠物类下面有狗狗类,猫猫类来继承它。
一般的情况我们有这两种方法
宠物类 a =new 狗狗类();
翻译就是。我有一只宠物,这只宠物是狗狗,它叫a
狗狗类a=new 狗狗类();
我有一只狗狗,它叫a.
这个不区别。关键的是,楼主来看下面的代码
宠物类 a=new 宠物类();
虽然我们经常说,我有一只宠物。(但是请注意,实际上没有一种叫宠物有东西。宠物是个泛泛的概念,我们现实生活中有狗和猫)
所以抽象类不能被new的功能。是为了符合事实意义。
同时也是类的一种高度概括。
我们说类是对象的抽象。抽象类又是各种各校类的抽象
热心网友
时间:2022-05-07 07:20
降低接口实现类对接口的实现难度,将接口不需要的抽象方法交给抽象类完成,接口只需要对需要的方法进行重写即可!
热心网友
时间:2022-05-07 09:11
举个例子:
有两类鸭子,第一类是家养的鸭子,不会飞行,会嘎嘎的叫,第二类是野鸭子,会飞行,也会嘎嘎的叫;
我们可以定义一个抽象类,里面有两个抽象方法
public abstract void quack(){} //嘎嘎地叫
public abstract void fly(){} // 飞行
下面我们定义两个鸭子类,一个家养的鸭子类,一个野鸭子类。
家养的鸭子只需要实现抽象类里面的quack()方法,应为它只会叫,不会飞。
野鸭子则可以实现抽象类里面的quack()、fly()方法,应为他又会叫,又会飞。
定义抽象类的好处就是可以选择继承抽象类里面的方法。
重载 这个概念我想你还没有搞明白,重载是重写父类中的方法,这个方法可以有多个,但是方法名必须同父类的方法名相同,参数类型、位置以及返回值可以不相同。
只要是你自己写的类,后者实现接口或实现抽象类的类都可以实例化。应为实例化之后才可以调用父类中的方法、属性,和自己类的方法、属性。但是子类重写父类中的方法之后就不能调用到父类的方法了,只会调用子类重载父类的方法。
希望对你有帮助!