`

9、抽象类

阅读更多

一、抽象类(abstract

 

    当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取,只抽取功能定义,而不抽取功能主体

 

二、抽象方法所在类一定要标示为抽象类,也就是说该类需要被abstract关键字所修饰

 

三、abstract可以修饰类和方法不能修饰变量

 

四、抽象类特点

 

  1. 抽象方法一定在抽象类中
  2. 抽象方法和抽象类都被abstract修饰
  3. 抽象类不能new对象,因为调用抽象方法没有意义
  4. 抽象类中的方法要被使用,必须由子类覆盖其所有的抽象方法后,建立子类对象调用。
  5. 如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类(即强迫子类重写)
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");
	 }
 }

 

五、抽象类和一般类

 

  1. 两者没有太大的不同,该如何描述事物,就如何描述事物。
  2. 只不过,该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体,那么就通过抽象方法来表示
  3. 抽象类不能实例化

六、抽象关键字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();
	}
}

 

分享到:
评论

相关推荐

    Java 抽象类

    9. **Java标准库中的抽象类示例** - `java.util.List` 和 `java.util.Set` 是抽象类,它们提供了集合框架的基础结构,而实际的实现如 `ArrayList` 和 `HashSet` 分别提供了具体的存储和操作方式。 10. **设计原则*...

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    抽象类和接口 区别分析

    ### 抽象类和接口的区别分析 在面向对象编程中,抽象类与接口都是实现代码复用和提高软件模块化的重要工具。它们各自拥有独特的特性和应用场景,掌握这些概念对于编写高质量、可维护性强的代码至关重要。下面我们将...

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

    ### C#中抽象类与接口的区别 在C#编程语言中,抽象类和接口都是用于实现面向对象编程中多态特性的关键概念。它们都旨在为其他类提供一种定义行为和特性的模板或规范,但它们之间存在着重要的区别。本文将详细探讨C#...

    接口与抽象类

    ### 接口与抽象类详解 #### 一、引言 接口与抽象类是面向对象编程中的两个核心概念,它们都是为了实现代码的重用性和灵活性而设计的。本文将详细探讨接口与抽象类的区别,并结合实际编程场景来分析何时使用接口、...

    抽象类实例联系资源

    ### 抽象类实例联系资源知识点解析 #### 一、抽象类的概念与作用 抽象类是一种特殊类型的类,主要用于提供一个基类供其他类继承。它不能被实例化,即不能通过`new`关键字创建对象。抽象类的主要作用是定义了一个...

    C#接口抽象类区别实例

    c#中抽象类和接口。 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 ...(9) 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法

    【Python--抽象类和抽象方法】--求三角形、矩形、圆的面积和周长的编程题(csdn)————程序.pdf

    【Python--抽象类和抽象方法】是面向对象编程的一个重要概念,主要应用于设计复杂的软件结构。在Python中,抽象类是一种不能直接实例化的类,它包含至少一个未实现的抽象方法,即没有具体实现的函数。抽象类的主要...

    Java抽象类高难度面试题及解析

    9. **抽象类与接口的结合**: - 抽象类可以实现接口,同时可以包含接口的默认方法实现。 10. **继承接口**: - 抽象类可以继承接口,必须实现接口中的所有抽象方法。 11. **抽象类继承抽象类**: - 抽象类可以...

    C#接口与抽象类的详解

    在编程语言中,C#提供了两种机制来实现多态性和代码重用,即抽象类和接口。虽然两者在某些方面有相似之处,但它们在设计理念和使用场景上有显著的差异。 首先,我们来深入理解抽象类。抽象类是一种特殊的类,它不能...

    第六章 抽象类与接口.zip

    9. 混合使用抽象类和接口以实现复杂的继承和多态性。 图片资源可能展示了抽象类和接口的示例代码、继承关系图、使用场景分析等,帮助读者更好地理解和应用这些概念。在学习时,结合这些图像资料可以加深对抽象类和...

    接口抽象类正规版资料.ppt

    9. 抽象类和接口的区别:抽象类和接口都是抽象的概念,但它们有不同的使用场景和作用。抽象类用于定义一组抽象方法和常量,并且可以被继承和实现,而接口用于定义一组抽象方法和常量,并且可以被实现。 这份 ppt ...

    php导出CSV抽象类实例

    9. abstract protected getExportTotal():这是一个抽象方法,要求继承该抽象类的子类提供获取总记录条数的实现。 10. abstract protected getExportFields():这也是一个抽象方法,要求子类提供获取导出的列名的...

    Java程序设计课程实验9-继承和抽象类

    Java程序设计课程实验9主要关注的是继承和抽象类的概念及其应用。在面向对象编程中,继承是实现代码重用和创建类层次结构的关键机制。抽象类则是用来作为其他类的基类,它不能被实例化,但可以包含抽象方法,这些...

    实验9 多态:抽象类1

    实验9 "多态:抽象类1" 主要涉及到C#编程语言中的面向对象设计原则,特别是抽象类和继承的概念,以及多态性在实际问题中的应用。这个实验的目标是让学生理解抽象类在代码重用中的作用,学会声明和使用纯虚函数,并...

    C#中抽象类和接口的区别(经典).docx

    9. **类设计**:抽象类适合设计大型功能单元,提供一些通用的实现;接口则适合设计小型、独立的功能模块。 10. **组合与继承**:尽量通过对象组合(组合复用)而非继承来实现功能,因为过多的继承可能导致类层次...

    纯虚函数和抽象类的实例

    在C++编程语言中,纯虚函数和抽象类是面向对象设计的重要概念,它们为创建灵活、可扩展的代码提供了基础。在这个实例中,我们将深入理解这两个概念,并结合《Visual C++2012入门经典(第6版)》中的Ex9_10来探讨它们的...

    JAVA抽象类和接口讲义PPT教案学习.pptx

    Java中的抽象类和接口是面向对象编程中的两个关键概念,它们用于实现代码的复用和扩展,同时也为类提供了一种规范化的结构。在Java中,抽象类是一种不能被实例化的类,它用来定义共同的属性和行为,供其子类继承。而...

    Java基础精品课12-抽象类录屏9.愚公移山案例.mp4

    Java基础精品课12-抽象类录屏9.愚公移山案例.mp4

    JAVA继承,接口,抽象类等练习[文].pdf

    9. **abstract关键字**:`abstract`用于声明抽象类和抽象方法。抽象类不能实例化,抽象方法只有声明,没有实现,必须由子类来完成。 10. **接口实现(Implements)**:类可以实现一个或多个接口,接口之间可以实现...

Global site tag (gtag.js) - Google Analytics