一、抽象类(abstract)
当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,只抽取功能定义,而不抽取功能主体
二、抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰
三、abstract可以修饰类和方法不能修饰变量
四、抽象类特点
- 抽象方法一定在抽象类中
- 抽象方法和抽象类都被abstract修饰
- 抽象类不能new对象,因为调用抽象方法没有意义
- 抽象类中的方法要被使用,必须由子类覆盖其所有的抽象方法后,建立子类对象调用。
- 如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类(即强迫子类重写)
abstract class Student { abstract void study(); } class BaseStudent extends Student { void study() { System.out.println("base study"); } } class AdvStudent extends Student { void study() { System.out.println("adv study"); } }
五、抽象类和一般类
- 两者没有太大的不同,该如何描述事物,就如何描述事物。
- 只不过,该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体,那么就通过抽象方法来表示
- 抽象类不能实例化
六、抽象关键字abstract和哪些不可以共存?
final,private,static
七、如果抽象类中有主函数,那是可以执行的,并且,非抽象方法可以调用抽象方法
import java.io.*; abstract class Demo { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = br.readLine(); System.out.println("<"+line+">"); } abstract void show(); void print() { System.out.println("你好"); show(); } } class D extends Demo { public void show() { System.out.println("run show"); } public static void main(String[] args) throws Exception { D d = new D(); d.print(); } }
相关推荐
9. **Java标准库中的抽象类示例** - `java.util.List` 和 `java.util.Set` 是抽象类,它们提供了集合框架的基础结构,而实际的实现如 `ArrayList` 和 `HashSet` 分别提供了具体的存储和操作方式。 10. **设计原则*...
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
### 抽象类和接口的区别分析 在面向对象编程中,抽象类与接口都是实现代码复用和提高软件模块化的重要工具。它们各自拥有独特的特性和应用场景,掌握这些概念对于编写高质量、可维护性强的代码至关重要。下面我们将...
### C#中抽象类与接口的区别 在C#编程语言中,抽象类和接口都是用于实现面向对象编程中多态特性的关键概念。它们都旨在为其他类提供一种定义行为和特性的模板或规范,但它们之间存在着重要的区别。本文将详细探讨C#...
### 接口与抽象类详解 #### 一、引言 接口与抽象类是面向对象编程中的两个核心概念,它们都是为了实现代码的重用性和灵活性而设计的。本文将详细探讨接口与抽象类的区别,并结合实际编程场景来分析何时使用接口、...
### 抽象类实例联系资源知识点解析 #### 一、抽象类的概念与作用 抽象类是一种特殊类型的类,主要用于提供一个基类供其他类继承。它不能被实例化,即不能通过`new`关键字创建对象。抽象类的主要作用是定义了一个...
c#中抽象类和接口。 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 ...(9) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
【Python--抽象类和抽象方法】是面向对象编程的一个重要概念,主要应用于设计复杂的软件结构。在Python中,抽象类是一种不能直接实例化的类,它包含至少一个未实现的抽象方法,即没有具体实现的函数。抽象类的主要...
9. **抽象类与接口的结合**: - 抽象类可以实现接口,同时可以包含接口的默认方法实现。 10. **继承接口**: - 抽象类可以继承接口,必须实现接口中的所有抽象方法。 11. **抽象类继承抽象类**: - 抽象类可以...
在编程语言中,C#提供了两种机制来实现多态性和代码重用,即抽象类和接口。虽然两者在某些方面有相似之处,但它们在设计理念和使用场景上有显著的差异。 首先,我们来深入理解抽象类。抽象类是一种特殊的类,它不能...
9. 混合使用抽象类和接口以实现复杂的继承和多态性。 图片资源可能展示了抽象类和接口的示例代码、继承关系图、使用场景分析等,帮助读者更好地理解和应用这些概念。在学习时,结合这些图像资料可以加深对抽象类和...
9. 抽象类和接口的区别:抽象类和接口都是抽象的概念,但它们有不同的使用场景和作用。抽象类用于定义一组抽象方法和常量,并且可以被继承和实现,而接口用于定义一组抽象方法和常量,并且可以被实现。 这份 ppt ...
9. abstract protected getExportTotal():这是一个抽象方法,要求继承该抽象类的子类提供获取总记录条数的实现。 10. abstract protected getExportFields():这也是一个抽象方法,要求子类提供获取导出的列名的...
Java程序设计课程实验9主要关注的是继承和抽象类的概念及其应用。在面向对象编程中,继承是实现代码重用和创建类层次结构的关键机制。抽象类则是用来作为其他类的基类,它不能被实例化,但可以包含抽象方法,这些...
实验9 "多态:抽象类1" 主要涉及到C#编程语言中的面向对象设计原则,特别是抽象类和继承的概念,以及多态性在实际问题中的应用。这个实验的目标是让学生理解抽象类在代码重用中的作用,学会声明和使用纯虚函数,并...
9. **类设计**:抽象类适合设计大型功能单元,提供一些通用的实现;接口则适合设计小型、独立的功能模块。 10. **组合与继承**:尽量通过对象组合(组合复用)而非继承来实现功能,因为过多的继承可能导致类层次...
在C++编程语言中,纯虚函数和抽象类是面向对象设计的重要概念,它们为创建灵活、可扩展的代码提供了基础。在这个实例中,我们将深入理解这两个概念,并结合《Visual C++2012入门经典(第6版)》中的Ex9_10来探讨它们的...
Java中的抽象类和接口是面向对象编程中的两个关键概念,它们用于实现代码的复用和扩展,同时也为类提供了一种规范化的结构。在Java中,抽象类是一种不能被实例化的类,它用来定义共同的属性和行为,供其子类继承。而...
Java基础精品课12-抽象类录屏9.愚公移山案例.mp4
9. **abstract关键字**:`abstract`用于声明抽象类和抽象方法。抽象类不能实例化,抽象方法只有声明,没有实现,必须由子类来完成。 10. **接口实现(Implements)**:类可以实现一个或多个接口,接口之间可以实现...