`
Tony_Lee-S
  • 浏览: 82513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于抽象类的几个关注点

阅读更多

下面是关于抽象类的值得注意的几点:

  • 抽象方法不能包含在非抽象类中。如果抽象父类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象的。换句话说,在抽象类扩展的非抽象子类中,必须实现所有的抽象方法。还要注意到,抽象方法是非静态的。
  • 抽象类是不能使用new操作符来初始化的。但是,仍然可以定义它的构造方法,这个构造方法在它的子类的构造方法中调用。
  • 包含气象对象的类必须是抽象的。但是,可以定义一个不包含抽象方法的抽象类。在这种情况下,不能使用使用new操作符创建该类的实例。这种类是用来定义新子类的基类的。
  • 即使子类的父类的具体的,这个子类也可以是抽象的。例如,Object类是具体的,但是它的子类如GeometricObject可以是抽象的。
  • 子类可以覆盖父类的方法并将它定义为abstract。这是很少见的,但是它在当父类的方法实现在子类中变得不合法时是很有用的。在这种情况下,子类必须定义为abstract。
  • 不能使用new操作符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型。因此,下面的语句是创建一个元素是GeometricObject类型的数组,这个语句是正确的:

GeometricObject[] object = new GeometricObject[10];

然后可以创建一个GeometricObject的实例,并将它的引用赋值给数组,如下所示:

object[0] = new Circle();

分享到:
评论

相关推荐

    继承,虚函数,抽象类

    在学习和应用这些概念时,有几个关键点需要注意: 1. 继承可能导致"菱形问题",即多重继承时可能出现的二义性。C++通过虚继承解决了这个问题。 2. 虚函数应谨慎使用,过多的虚函数可能影响性能,因为它们需要额外的...

    JAVA中抽象类与接口的区别

    当面临抽象类与接口的选择时,可以根据以下几点来进行决策: 1. **是否需要多继承?** 如果需要支持多继承,则应考虑使用接口。 2. **是否有共享的状态?** 如果需要在多个类间共享某些状态,则更适合使用抽象类。 ...

    C#中abstract继承抽象类

    C#中的抽象类还有以下几点需要注意: 1. **抽象类不能被实例化**:你不能创建抽象类的对象,只能通过继承它并创建子类的对象来间接使用抽象类的成员。 2. **密封类不能继承抽象类**:`sealed`关键字表示类不能被...

    抽象类 学习

    在学习抽象类时,有几个关键点需要理解: 1. **抽象方法**:抽象方法在抽象类中声明,但不包含任何实现。它们以关键字`abstract`标识,并且必须在子类中被覆盖。如果不实现所有抽象方法,那么创建的子类也将成为...

    第05章 面向对象(下) 06 抽象类的基本概念

    抽象类的主要用途有以下几点: 1. **接口定义**:抽象类可以用来定义一组规范,强制子类实现特定的方法,确保它们具备某些共同的行为。 2. **代码重用**:抽象类可以包含一些共有的方法和属性,这些在子类中可以...

    C#抽象类和接口的区别.docx

    在选择使用抽象类还是接口时,应考虑以下几点: 1. **版本控制**:如果需要控制组件的不同版本,抽象类可能是更好的选择,因为它允许在不破坏向后兼容的情况下添加新方法。 2. **多态性**:如果希望实现多态行为,...

    343.341.JAVA基础教程_面向对象(下)-抽象类与抽象方法的使用(343).rar

    抽象类和抽象方法的使用有以下几个关键点: 1. **继承与多态**:通过继承抽象类,子类可以获取父类的所有属性和方法,包括抽象方法。子类必须实现所有的抽象方法,否则它也会成为一个抽象类。这种机制使得多态成为...

    专题Java语言的接口和抽象类PPT学习教案.pptx

    Java语言的接口和抽象类是面向对象编程中的关键概念,它们在软件设计中起到至关重要的作用,尤其是在确保代码的灵活性、可扩展性和可插入性方面。接口和抽象类的主要区别在于,接口仅定义方法签名,不包含任何实现,...

    第13讲 谈谈接口和抽象类有什么区别?1

    面试中,接口和抽象类的区别通常会涉及到以下几点: 1. **实现方式**:一个类只能直接继承一个抽象类,但可以实现多个接口。 2. **成员变量**:抽象类可以有非静态成员变量,而接口则不能。 3. **方法实现**:接口...

    class_abstract.rar_abstract c#_abstract C#_abstract c# 用途_c# 抽象

    C#中的抽象类还有以下几个关键点需要注意: 1. **继承**:抽象类可以被其他类继承,用`:`符号表示。继承抽象类的非抽象子类必须实现所有未实现的抽象方法。如果子类仍然不提供实现,那么这个子类也必须被声明为抽象...

    抽象出一个类用于php,smarty分页

    在PHP中,我们需要考虑以下几个关键点: 1. **总记录数**:计算数据库中的所有数据条数,这是确定分页总数的基础。 2. **每页条目数**:定义每一页显示的数据量,通常可以根据业务需求或用户体验设置。 3. **当前页...

    第五次上机题目及参考代码.docx

    从提供的信息来看,这里涉及到了几个关键的面向对象编程概念,包括继承、抽象类、多态以及友元函数。下面将详细阐述这些知识点。 1. **继承**: 继承是面向对象编程中的一个重要特性,它允许一个类(子类)继承另...

    C#编程几个典型实例

    本文将深入探讨这两个关键知识点,并结合"ref"关键字的使用,来阐述如何在实际编程中有效地应用它们。 首先,让我们了解一下接口。接口在C#中是一种完全抽象的类型,它定义了一组方法的签名,但不包含任何实现。...

    java关于抽象方法的小练习(csdn)————程序.pdf

    总结一下,这个小练习展示了以下几个关键知识点: 1. Java 接口的概念及其作用,定义了一组规范供实现者遵循。 2. 抽象类的概念,它可以包含抽象方法和非抽象方法,作为子类的模板。 3. 多态性的应用,子类可以覆盖...

    几个java常用的类

    在Java编程中,有几个常用的类对于开发人员来说是不可或缺的,这些类可以帮助我们处理数据库操作、页面分页以及过滤请求。下面将详细讲解标题和描述中提到的几个关键概念。 首先,`baseDao` 类是Java开发中的一个...

    C++单项选择复习题

    C++是一种面向对象的编程语言,它以类作为其...7. 抽象类至少包含一个纯虚函数,不能直接实例化,通常作为接口使用。 8. 文件操作在C++中通常涉及`fstream.h`头文件,如`ifstream`和`ofstream`类用于输入输出流操作。

    java实验 面向抽象与接口编程

    1. 设计抽象类:根据问题的需求,创建一个或多个抽象类,定义公共属性和行为。可能的抽象类如`Shape`,包含抽象方法如`getArea()`和`getPerimeter()`。 2. 定义接口:定义接口来规范特定的行为或功能,如`Drawable`...

    实验五,面向抽象与接口编程.zip

    在实验“面向抽象与接口编程”中,你可能会遇到以下几个关键点: 1. **定义抽象类**:你需要创建一个抽象类,包含一些方法的实现和抽象方法。这将作为其他类的基础。 2. **实现抽象类**:创建至少两个子类继承自这...

    C#中抽象类与接口的区别详解

    总结来说,C#中的抽象类和接口都是用于实现多态性,但它们在使用上有以下几点关键区别: 1. 抽象类可以有成员实现,而接口只能声明方法、属性等,不允许有任何实现。 2. 类可以继承一个抽象类,但只能继承一个;而...

    工厂接口虚函数抽象函数单例DEMO

    在学习这个DEMO时,可以关注以下几个方面: - 如何定义和使用工厂接口来创建对象。 - 虚函数和抽象函数如何促进代码的扩展性。 - 单例模式的实现及其在三层架构中的作用。 - 如何将这些设计模式整合到ASP.NET C#...

Global site tag (gtag.js) - Google Analytics