抽象类的作用,C#中的抽象类有什么好处?
抽象类的作用,C#中的抽象类有什么好处?详细介绍
本文目录一览: 什么是抽象类?抽象类有什么作用?
抽象类指的是含有纯虚函数的类,该类不能建立对象,只能声明指针和引用,用于基础类的接口声明和运行时的多态
另外,如果抽象类的某个派生类在向继承体系的根回溯过程中,并不是所有的纯虚函数都实现了,该类也是抽象类,同样不能建立对象
抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法。
抽象类既可以定义规则,还可能提供已实现的成员。
抽象类可以定义字段、属性、包含有实现的方法。
抽象类只能作用于引用类型。
没有实际作用,顶多起个声名的作用。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
作用:通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。
扩展资料:
在使用抽象类时需要注意几点:
1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
2、抽象方法必须由子类来进行重写。
3、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。
4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
5、子类中的抽象方法不能与父类的抽象方法同名。
6、abstract不能与final并列修饰同一个类。
7、abstract不能与private、static、final或native并列修饰同一个方法。
参考资料来源:百度百科-抽象类
java中什么是抽象类和抽象方法?创建有何作用?
使用了关键词abstract声明的类叫作"抽象类"。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。"抽象方法",属于一种不完整的方法,只含有一个声明,没有方法主体。
java抽象类的作用:
1、通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性。
2、接口就是更纯粹的抽象类。
什么是抽象类?抽象类有什么作用?
抽象类提供多个派生类共享基类的公共定义,它既可以提供抽象方法,也可以提供非抽象方法。抽象类不能实例化,必须通过继承由派生类实现其抽象方法。
抽象类既可以定义规则,还可能提供已实现的成员。
抽象类可以定义字段、属性、包含有实现的方法。
抽象类只能作用于引用类型。
抽象类和抽象方法起什么作用
多态..主要是有某些方法,你在很多类中都需要用到,把这些方法抽象出来,然后继承这些抽象类.然后再重写类里面的抽象方法!
抽象类和抽象方法就是用来被继承的子程序进行重写的 所以抽象方法中不需要写任何代码
给你举个例子吧
abstract Animal{ //定义一个抽象类animal
run{} //定义animal类的一个抽象方法 run
}
方法中不写任何东西是因为不同的继承它的类的跑的方法不同 也就是说 不管你定义animal类的run方法为什么 子类都是要重写的 既然如此 抽象类中只需写一个方法名 而不需要在方法中写任何东西
明白了吗
打个比方,要做一个游戏。如果要创建一个角色,如果反复创建类和方法会很繁琐和麻烦。建一个抽象类后。若要创建角色可直接继承抽象类中的字段和方法,而抽象类中又有抽象方法。如果一个角色有很多种职业,每个职业又有很多技能,要是依次实例这些技能方法会显得想当笨拙。定义抽象方法,在需要时继承后重写调用,可以省去很多代码。
总之抽象类和抽象方法起到一个框架作用。很方便后期的调用和重写
抽象方法是为了程序的可扩展性。重写抽象方法时即可实现同名方法但又非同目的的要求。
实现多态啊..
最简单的一个作用,实现模板.
所有继承抽象类的子类,必须强制实现抽象类的抽象方法.如果没有抽象方法,则子类可有,可没有该方法.定义一个抽象方法后,所有子类就必须实现了.
另外,抽象类通常用于指向子类的实例:
比如:
抽象类 实例 = new 子类();
实例.抽象方法();
如果你不定义抽象方法,如何使用子类的方法呢??
1、抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。
2、抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。
3、抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。 抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。
java中抽象类的存在有什么意义?
继承除了可以复用已经实现的方法外,还有一个很重要的作用:多态!
举个例子,你有一个方法,需要根据传递参数的不同,而返回不同的结果:
Action(Bird bird){bird.move();} //结果是飞Action(Man man){man.move();} //结果是走Action(Fish fish){bird.move();} //结果是游如果它们都继承自一个类Animal,那么这个方法只写一个就可以了:
Action(Animal animal){animal.move();} //根据多态,结果是子类的实现
相当于普通类和接口的综合体,你可以在里面定义实现了的方法和未实现需要继承去实现的抽象方法。就相当于一个存放了可以直接使用的物品和未使用的模具的容器。
java中抽象类更利于代码的维护和重用。
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。具体分析如下:
1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。
比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。
2.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。
比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。
所以,Java中抽象类对于代码的维护和重用有很好的帮助,也是Java面向对象的一个重要体现。
C#中的抽象类有什么好处?
给你一堆木头,你要画图纸、切割、打磨、粘接...等等很多工序才能做一个航模出来...
好处是:
1 代码重用,继承类都能用抽象类定义的方法
2 灵活,某个继承类既可以继承改方法也可以派生一个新的
3 抽象类是所有继承类通用方法的最小集合,可以封装某一个继承类的实例用来进行传递
比如:
你去航模店买一套航模套装,费不了多少事就能做一个航模出来...
前者你高兴了可以做架飞机也可以做艘舰船...而后者你只能做架飞机再有个性也是架飞机...
航模套装就像是抽象类...是半成品...
派生类只能提供一个基类,即只能直接继承一个抽象类
抽象类可以没有具体的成员,(没有代码,而且必须在派生类中执行)
和接口有些类似。
比普通类有什么好处就是可以使用多态性把继承这种类型的对象指定他们的变量,接着就通过这些变量来使用这些类的成员。
比如,假定有一个对象系列表示“汽车”,基类CAR包含了汽车的核心定义,比如汽车的车轮和引擎可以是些什么牌子的类型的(可以是柴油发动机阿~~)这个类就是抽象的。因为并没有“一般的汽车”为了制造一辆汽车必须给该汽车添加特性,为此就必须派生一些类,如passengerCar FreightCar等等了
通过继承它来实现多态,为将来要实现的方法做好接口,实现方法名的重用方便分工合作时,命名的规范增强程序的扩展性和兼容性接口是最为专一的抽象类
抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。
基本有好处三个:1 、代码重用、2 灵活、3、最小集合;
抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。
1、抽象类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口。
2、抽象类当中可以存在非抽象的方法。
3、抽象类中的成员变量可以被不同的修饰符来修饰。
什么叫做抽象类,抽象类有何作用,抽象类的派生类是否一定要给出纯虚函数的实现?
java里有这个概念
首先说抽象类 抽象类呢就是类里面含有了抽象的方法
抽象的方法呢 就是没有实现的方法
有抽象的方法当然不能实例化 你想如果它能实例 那么这个实例调用那个没有实现的抽象类会有什么结果
虽然不能实例化 但也不是没有用 抽象类都是用于被继承的
可以在它的子类中 把抽象的方法实现了 用子类事例化对象(首先这个子类不是抽象类)
如果抽象类 弄明白了 接口也就好理解了 接口 你可以理解为一个特殊的抽象类
就是它所有的方法都是抽象方法
抽象类是含有纯虚函数的类并没有实现纯虚函数函数体的类;
作用:抽象类顾名思义是一个抽象的概念,具体没有讲他怎么做;
他是在子类中实现的,这是一个具体化的过程,如果子类中没有全部实现纯虚构函数的函数体部分那其子类依旧是一个抽象类。
抽象类的派生类不一定要给出纯虚构函数的实现,给出所有纯虚函数的实现那该派生类就不再是抽象类,而没有给出其纯虚构函数的实现,那该纯虚函数依旧是抽象类。
望采纳!
C#中的 抽象类的作用是?什么时候用抽象类?
抽象类实际意义就是说,派生类去实现抽象类定义的方法。例如,顶一个抽象类
abstract class Resume//定义简历模板
{ protected abstract void print();//定义打印功能--但不用去实现,因为在抽象类里我只需要定义行为,功能是什么我在它派生类里面实现
}
class EnglishResume:Resume//定义英文简历模板--这里继承Resume,一旦继承就要实现它基类-抽象类的功能重写
{
protected override void print()
{
//定义具体行为表现
}
}
好处是什么?你可以看见,我这里英文简历模板用了抽象类的功能,那么中文简历同样也要实现这些功能。即同类型的对象需要做同样的事情,你就可以对它们共有的行为定义抽象类
抽象类:
抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。
在设计一些大的模块单元时,可以用到抽象类。
php中抽象类的作用是什么?
相当于制定一个规范,比如一个商场,规定必须有一个支付的方法,那我们在父类中定义一个抽象支付方法,那么继承之后就必须实现