公共抽象类
Ⅰ 抽象类和普通类有哪些区别(具体点)
1.
c++没有abstract.
vc提供了一个interface
2.
抽象类就是指不能实例化的类,因为它们包含了纯虚方法。
3.
虚函数是在申明的时候用了关键字virtual的类的(非静态)成员函数
Ⅱ 这个c#程序上来定义了一个公共的抽象类,这定不定义为抽象有什么区别啊
抽象类中允许有抽象方法。
抽象方法是只有方法声明,而没有具体方法体的方法,其方法体留待非抽象子类实现。
非抽象类则不允许有抽象方法。
Ⅲ 定义一个抽象类abstracttest,其中有一个公共的抽象方法dispmessage()。然后定义此
abstract class AbstractTest {
public abstract void dispMessage();
}
class StudentTest extends AbstractTest {
private String name;
private String id;
private int score;
public StudentTest() {
}
public StudentTest(String name, String id, int score) {
this.name = name;
this.id = id;
this.score = score;
}
public void dispMessage() {
System.out.printf("%s %s: %d\n", name, id, score);
}
}
Ⅳ “抽象类”和“接口”的区别是什么
“抽象类”和“接口”的区别如下:
1、抽象类和接口都不能直接实例化,如果要实例化,抽象类变量必须指向实现所有抽象方法的子类对象,接口变量必须指向实现所有接口方法的类对象。
2、抽象类要被子类继承,接口要被类实现。
3、接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
4、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
5、抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类。同样,一个实现接口的时候,如不能全部实现接口方法,那么该类也只能为抽象类。
6、抽象方法只能申明,不能实现,接口是设计的结果
,抽象类是重构的结果
7、抽象类里可以没有抽象方法
8、如果一个类里有抽象方法,那么这个类只能是抽象类
9、抽象方法要被实现,所以不能是静态的,也不能是私有的。
10、接口可继承接口,并可多继承接口,但类只能单根继承。
如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。
如果你想实现多重继承,那么你必须使用接口。由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口。因此你就可以使用接口来解决它。
如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。
(4)公共抽象类扩展阅读:
抽象类:
抽象类是用来捕捉子类的通用特性的
。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。
接口:
接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。
资料资料:网络-Java
Ⅳ java中,抽象类中的方法默认是公共的还是友好的
友好的
Ⅵ 为什么抽象类 方法实现时必须是public的
不知抄道你明白public和private的区别不。
如果你连这都不明白就更没法说了。
抽象类中的方法是抽象方法。只定义方法而不去具体实现。
肯定需要另一个类来实现这些抽象的方法。这点明白?
那么,即然需要另一个类来实现,那么首先是需要肯定这是方法是必须可访问的。即:public.
Ⅶ 什么是抽象类抽象类有什么作用
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
作用:通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类里面可以有非抽象方法但接口里只能有抽象方法 声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。
(7)公共抽象类扩展阅读:
在使用抽象类时需要注意几点:
1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
2、抽象方法必须由子类来进行重写。
3、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。
4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
5、子类中的抽象方法不能与父类的抽象方法同名。
6、abstract不能与final并列修饰同一个类。
7、abstract不能与private、static、final或native并列修饰同一个方法。
Ⅷ 想知道公共抽象类和内部抽象类的区别在哪里
#include<math.h> class container { protected:double radius; public: container(double radius) { container::radius=radius; } virtual double surface_area()=1; virtual double volume()=1; };
Ⅸ 抽象类和具体类有何异同
面向对象是对接口编程,不是对实现编程。抽象类定义了接口,至于怎么实现,调用者专已经不用属关心了。
相当于提供了一种特定类的使用规范,其中一部分是公共的,能够使该类正常运转并提供外部接口,它与接口的区别也就在与此;另一部分由虚函数组成,供子类继承实现。这样做的好处是只要实现自己需要的部分,就可以自动运转,没有关联。
简单的说,抽象类就是含有纯虚函数的类,这是它的定义。
从功能上来讲,抽象类定义了一个接口,即方法调用规约,派生类实现具体的规约。这实际上可以将具体的实现和接口分离开来,从而达到底层细节变化而高层框架不变的需求,通俗一点就是解耦。
Ⅹ 抽象类是什么意思
抽象方法是必须实现的方法。就象动物都要呼吸。但是鱼用鳃呼吸,猪用肺呼内吸。
动物类要有呼吸方法。容怎么呼吸就是子类的事了。
现在有很多讨论和建议提倡用interface代替abstract类,两者从理论上可以做一般性的混用,但是在实际应用中,他们还是有一定区别的。抽象类一般作为公共的父类为子类的扩展提供基础,这里的扩展包括了属性上和行为上的。而接口一般来说不考虑属性,只考虑方法,使得子类可以自由的填补或者扩展接口所定义的方法,就像JAVA王子所说的事件中的适配器就是一个很好的应用。
用一个简单的例子,比如说一个教师,我们把它作为一个抽象类,有自己的属性,比如说年龄,教育程度,教师编号等等,而教师也是分很多种类的,我们就可以继承教师类而扩展特有的种类属性,而普遍属性已经直接继承了下来。