精华内容
下载资源
问答
  • 抽象类能定义对象吗
    千次阅读
    2020-10-09 08:59:46

    如题

    更多相关内容
  • 抽象类创建对象,其创建对象没有意义,但是抽象类可以保存一类事物具备的共同属性和行为,让子类进行继承。 抽象类的构造方法不是给自己用的,而是为了让子类调用构造方法创建对象时初始化用的 ...

    抽象类不能创建对象,其创建对象没有意义,但是抽象类可以保存一类事物具备的共同属性和行为,让子类进行继承。

    抽象类的构造方法不是给自己用的,而是为了让子类调用构造方法创建对象时初始化用的

    展开全文
  • 可以用一个抽象类定义一个指向该类的指针,但是不定义或声明对象。 这个中原因就是,定义一个类的对象是,编译器在编译时需要了解类的所有信息以便准确的为要实例化的对象分配内存;由此可见,定义一个类对象是要...

    可以用一个抽象类定义一个指向该类的指针,但是不能定义或声明对象。

    这个中原因就是,定义一个类的对象是,编译器在编译时需要了解类的所有信息以便准确的为要实例化的对象分配内存;由此可见,定义一个类对象是要生成一个类的实例的,而C++规定抽象类是不能实例化的,所以会报出如下错误:

    error C2259: 'CBase' : cannot instantiate abstract class

    >        due to following members:
    >        'int CBase::func(int)' : is abstract
    public:
     virtual int func(int param) = 0;
    private:
    };
    public:
     CTestA();
     ~CTestA();
     virtual int func(int param);
    private:
     int m_value;
    };
    {
     CBase cb0; //定义或声明一个对象,error
     CBase *cb = new CTestA(); //定义一个指针,OK
    }

     

    但是定义一个指针就不同了,指针是什么?大家都知道,无论它指向的是内部类型还是自己定义的结构体类型还是类的类型变量,它只不过就是一个具有32BIT也就是4个字节内存的空间而已,不需要其他任何信息了,所以能成功定义一个抽象类的指针变量。

     

    class CBase{

    class CTestA:public CBase{

    int _tmain(int argc, _TCHAR* argv[])

     return 0;


    展开全文
  • 抽象类为什么不创建对象

    千次阅读 2020-07-18 21:37:02
    在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类抽象类往往用来表征对问题领域...

    目录

    抽象类

    比较区别

    创建对象


    抽象类

    面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

    抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。 

    比如,在一个图形编辑软件的分析设计过程中,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域并不是直接存在的,它就是一个抽象概念。而正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。


    比较区别

    与具体类比较

    1. 抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。

    2. 允许(但不要求)抽象类包含抽象成员。

    3. 抽象类不能被密封。

    与接口比较 

    抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。

    接口是引用类型的,和抽象类的相似之处有三点:

    1. 不能实例化;

    2. 包含未实现的方法声明;

    3. 派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)。 [2] 

    抽象类与接口紧密相关。然而接口又比抽象类更抽象,这主要体现在它们的差别上:

    1. 类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。

    2. 抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。

    3. 抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。

    4. 抽象类是对象的抽象,然而接口是一种行为规范。

     


    创建对象

    抽象类尚未实现方法,所以不能创建对象。

    创建对象去调用方法是指做明确的事情,而这个抽象方法并不明确,所以只有继承抽象类去实现抽象方法才可以。

    展开全文
  • 抽象类概述分析事物时, 发现了共性的内容,就出现向上抽取,但是如果父类 的方法功能与子类不同,那么这时就不抽取方法主体,这样抽取出来的方法 就是抽象方法 什么是抽象类有抽象方法的类 抽象类和普通的父类有什么区别...
  • 什么是抽象类?怎么定义

    千次阅读 2021-09-01 09:47:26
    什么是抽象类?怎么定义?这是属于java技术里面的一个知识点,本期教程就是围绕这个问题做的相关介绍,当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。例如,在...
  • 抽象类定义

    千次阅读 2020-12-12 18:32:01
    抽象类定义 抽象类 抽象类表示一个抽象概念 抽象类不产生实例化对象,必须通过子类实例化。因此抽象类必须有子类的出现。 抽象类能够明确的定义子类需要覆写的方法。 抽象类使用 abstract 关键字声明。 抽象类中...
  • 本文实例讲述了Java抽象类和抽象方法定义与用法。分享给大家供大家参考,具体如下:一...抽象类除了不实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不...
  • python面向对象抽象类

    千次阅读 2022-04-27 18:11:52
    抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不被实例化,只能被继承,且子类必须实现抽象方法 python中的abc模块 python中需要利用abc模块实现抽象类 import abc #利用abc模块实现抽象类 class ...
  • JAVA抽象类定义

    万次阅读 多人点赞 2018-08-25 19:24:40
    抽象类的基本概念 抽象方法,只声明而未实现的方法我们称为抽象方法,所有的抽象方法都需要用abstract关键字声明,包含抽象方法的类也需要使用abstract关键字声明,抽象类和普通类相比,区别在于抽象类带有抽象...
  • 一、抽象类 定义:在普通类的基础上扩充了一些抽象方法 。 1. 抽象方法:只声明而未实现...抽象类中没有具体实现,因此抽象类直接实例化对象 abstract class Person{ private String name;//姓名属性 ...
  • 一、抽象类与抽象方法的定义 抽象类:只在普通类的基础上扩充了一些抽象...抽象类中包含抽象方法,抽象方法不包含方法体,即抽象类中没有具体实现,所以抽象类中不直接产生实例化对象 举例:创建一个简单的抽象...
  • c++中的抽象类是怎么定义

    千次阅读 2020-11-03 11:27:45
    zhi并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法...
  • Java抽象类和抽象方法如何定义

    千次阅读 2020-11-18 23:46:06
    具体的类是可以被初始化为对象的,在类的声明前面加上抽象类关键词abstract,则该类就会成为一个抽象类。 abstract public class Canine extends Animal { public void roam () {} } 编译器不会让你初始化抽象类,...
  • 抽象类定义与使用

    万次阅读 多人点赞 2019-04-03 14:38:22
    抽象类直接产生实例化对象,因为抽象类是“半成品”,无法直接使用。不直接new **抽象方法:**使用abstract 关键字定义并且没有方法体的方法。抽象方法所在类一定是抽象类。 abstract class Person{ ...
  • Java抽象类/抽象方法定义及其特性详解

    千次阅读 多人点赞 2019-09-28 18:37:53
    定义抽象类的作用是将一类对象的共同特点抽象出来,成为代表该类共同特性的抽象概念,其后在描述某一具体对象时,只要添加与其他子类对象的不同之处,而不需要重复类的共同特性。这样就使得程序概念层次分明,开发更...
  • 在c++和java中我们会定义很多类,但是我们会遇到在对类进行new实例化时会遇到“不实例化抽象类”或者“抽象类不实例化”,针对这个问题要首先理解两个内容“抽象类”和...抽象类定义: 含有纯虚函数的类称为抽象类
  • 抽象类一定有抽象方法吗?我来说说吧,静态是属于字节码的;一个抽象类可以没有抽象方法,只是为了不让别人来实例化它; 以上两点可以说明,...总结就是:抽象类中可以定义静态方法,只是抽象类自己不实例化,所...
  • 关于C++抽象类建立对象的问题

    千次阅读 2017-02-04 10:18:06
    抽象类是无法建立对象、但可以定义指针、该指针可以指向它的派生类,进而实现多态性
  • Java抽象类 详解

    万次阅读 多人点赞 2016-10-05 00:06:35
    一、抽象类的基本概念普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。...
  • 构造器被子类继承并完成初始化,但不会创建抽象类的实例对象。静态方法的好处是不实例化就可由子类类名直接调用 抽象类直接使用省去了实例化过程 抽象类中的静态方法是存在内存中的,用的时候直接去内存中去取 ...
  • Java抽象类创建对象

    万次阅读 2017-03-06 14:35:21
    人们使用抽象类和接口只是为了说明要干什么事,而让他们的实现类去根据自己的需要去实现这些方法,比如说抽象类定义一个eat()方法, 它并没有说这个方法具体怎么做,羊就可以吃草,虎就可以吃肉,羊和虎都实现了这...
  • 011 抽象类必须要有抽象方法吗?

    千次阅读 2021-02-28 14:53:53
    抽象类必须要有抽象方法吗?答:不需要,抽象类不一定有抽象方法;但是包含一个抽象方法的类一定是抽象类。(有抽象方法就是抽象类,是抽象类可以没有抽象方法)解释:抽象方法:java中的抽象方法就是以abstract修饰的...
  • 用C#语言编写一段程序,满足以下要求: 1.定义抽象类Pet(宠物)类,作为基类。...4.定义包含主方法的类MainClass,通过抽象类对象调用派生类的覆写方法。 using System; using System.Collections.Generic; usin...
  • C++ 抽象类 (abstract class)

    千次阅读 多人点赞 2021-05-31 12:20:38
    C++ 抽象类 (abstract class). 抽象类是什么, 以及抽象类和具体类的区别.
  • python 如何定义抽象类和抽象方法

    千次阅读 2020-01-10 13:00:05
    文章目录(一)python 如何定义抽象类和抽象方法(二)python中的多态(三)类的组合 (一)python 如何定义抽象类和抽象方法 在python中类 通过继承metaclass = ABCmeta类来创建抽象类抽象类是包含抽象方法的类,...
  • 如何在抽象类中注入bean

    千次阅读 2021-03-16 18:28:05
    抽象类是无法实例化的,因此无法使用@Service等这种注解直接将抽象类交给ioc容器管理,但是项目中往往需要有很多子类公用抽象父类的模板方法,那么怎么实现呢?错误演示1、抽象类@Componentpublic abstract ...
  • java抽象类有构造方法吗?

    千次阅读 2020-05-27 21:50:09
    定义抽象类 格式 : abstract class 类名{} 举例 : 抽象类中的 方法 抽象方法 abstract void eat(); 没有方法体,没有{},以; 结尾. 非抽象方法 void sleep(){ syso .... } 抽象类子类: 1.非抽象类,...
  • C# abstract抽象类定义,作用(使用场景)

    万次阅读 多人点赞 2018-09-03 11:34:27
    关于C#中抽象类的一些感想 写代码已经有很长一段时间, 但感觉成长很少,基本是为了功能开发而开发,我相信80%的程序员都一样,基本都是拿网上的开源项目改改改后实现功能就行, 很少会去深入,去思考为什么要这么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 772,541
精华内容 309,016
热门标签
关键字:

抽象类能定义对象吗