`
编程足球
  • 浏览: 257743 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

java 基础之(抽象类)

    博客分类:
  • java
 
阅读更多
抽象方法 :它属于一种不完整的方法,
只含有一个声明,没有方法主体。下面是抽象方法声明时采用的语法: 
abstract void x(); 
包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成
abstract(抽象)。否则,编译器会向我们报告一条出错消息。 
若一个抽象类是不完整的,那么一旦有人试图生成那个类的一个对象,编译器又会采取什么行动呢?由于不
能安全地为一个抽象类创建属于它的对象,所以会从编译器那里获得一条出错提示。通过这种方法,编译器
可保证抽象类的“纯洁性”,我们不必担心会误用它。 
如果从一个抽象类继承,而且想生成新类型的一个对象,就必须为基础类中的所有抽象方法提供方法定义。
如果不这样做(完全可以选择不做),则衍生类也会是抽象的,而且编译器会强迫我们用 abstract 关键字标
志那个类的“抽象”本质。 
即使不包括任何 abstract 方法,亦可将一个类声明成“抽象类”。如果一个类没必要拥有任何抽象方法,而
且我们想禁止那个类的所有实例,这种能力就会显得非常有用。 
Instrument 类可很轻松地转换成一个抽象类。只有其中一部分方法会变成抽象方法,因为使一个类抽象以
后,并不会强迫我们将它的所有方法都同时变成抽象。下面是它看起来的样子: 


package com.lgf.polymorphism;

/**
 * 1. abstract不能与private、static、final、native并列修饰同一个方法
 * 
 * 2. 使用起来和一般类差不多,但是不能初始化
 * 
 * 3.抽象类必须被继承,抽象方法必须被重写
 * 
 * 4.可以有自己的数据成员,也可以有非abstarct的成员方法
 * @author lgf @data 2011-11-28
 */
public abstract class AbstractDemo {
	private int intValuePrivate;
	public String strValuePublic;
	protected double doubleValueProtected;
	public static int staticIntValue;
	
	public abstract void publicFunction();
	abstract void defaultFunction();
	protected abstract void protectedFunction();
	
	public static void staticNotAbstractFunction(){
		System.out.println("抽象类中的方法");
	}

//	public static abstract void publicStaticFunction();	不能使用 static 进行修饰
//	private abstract void privateFunction();  不能使用 private 进行修饰
	
	public static void main(String[] args) {
//		new AbstractDemo(); 无法进行实例化
	}
}

分享到:
评论

相关推荐

    《Java 基础之抽象类与接口:深度解析与正确使用》.docx

    《Java 基础之抽象类与接口:深度解析与正确使用》

    Java抽象类和抽象方法

    Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一。 ### 一、Java抽象类 #### 定义 抽象类在Java中是一种特殊类型的类,它不能被实例化,即无法...

    Java 抽象类

    - `java.util.List` 和 `java.util.Set` 是抽象类,它们提供了集合框架的基础结构,而实际的实现如 `ArrayList` 和 `HashSet` 分别提供了具体的存储和操作方式。 10. **设计原则** 在设计抽象类时,应遵循开闭...

    详细解析Java中抽象类和接口的区别

    这种差异意味着接口更适合用于定义对象间的行为规范,而抽象类则适合定义一组紧密相关的类的共同属性和行为的基础框架。 ##### 成员变量与默认实现 - **抽象类**:可以拥有成员变量(包括静态和非静态的)、构造器...

    java抽象类与接口区别

    ### Java抽象类与接口的...抽象类适用于提供一些基础的实现细节,而接口则更多地用于定义行为规范。理解两者之间的差异可以帮助开发者更加灵活地设计程序结构。在实际应用中,根据项目需求选择合适的设计模式至关重要。

    Java基础--抽象类

    在"Java基础--抽象类"这个主题中,我们将深入探讨抽象类的基本使用方法和相关知识。 首先,我们来看什么是抽象类。在Java中,如果一个类包含至少一个抽象方法(没有具体实现的方法),那么这个类必须被声明为抽象类...

    \\java类、抽象类、接口、继承和对象解析 .doc

    Java 类、抽象类、接口和继承是面向...总之,Java 类、抽象类、接口和继承是构建复杂软件系统的基础,它们相互配合,提供了强大的面向对象设计能力。理解和熟练运用这些概念对于编写高效、可维护的 Java 代码至关重要。

    java中的抽象类和接口的理解

    抽象类的主要用途是作为其他类的基础类,通过继承抽象类来实现或重写其中的抽象方法。 **特点:** 1. **抽象类可以有构造器**:这使得抽象类能够初始化其状态,这对于共享状态的子类来说非常有用。 2. **抽象类...

    java 抽象类练习题

    Java 抽象类和接口是面向对象编程中的关键概念,...这些练习题帮助我们巩固了Java中抽象类、接口和异常处理的基础知识。通过理解和实践这些概念,我们可以编写更符合面向对象原则的代码,增强程序的灵活性和可维护性。

    Java-Java面向对象抽象类和接口实现教程

    本教程将深入探讨Java中的抽象类和接口,这两种都是实现多态性和抽象化的关键工具。理解并熟练运用它们对于成为一名优秀的Java开发者至关重要。 首先,我们来谈谈抽象类(Abstract Class)。抽象类是一种不能被实例...

    java期末复习抽象类与接口,内部类,知识点.zip

    抽象类是多态性的基础,允许我们创建更通用的代码,提高了代码的重用性。 接口在Java中扮演着完全不同的角色。接口是一种完全抽象的类型,它只包含常量和抽象方法。接口使用`interface`关键字定义,它不允许有任何...

    java 抽象类及接口

    在Java编程语言中,抽象类和接口是面向对象设计的重要组成部分,它们允许程序员定义通用的类型和行为,以便在各种具体实现中复用和扩展。下面我们将深入探讨这两个概念。 首先,抽象类是一种特殊的类,它使用`...

    Java基础知识:接口和抽象类

    Java 基础知识:接口和抽象类 在 Java 编程中,接口和抽象类是两个重要的概念,它们都用于实现面向对象编程中的抽象和封装,但在使用方式和功能上有所不同。 1. 接口(Interface) 接口是一种抽象的数据类型,它...

    Java基础精品课12-抽象类.zip

    本课程“Java基础精品课12-抽象类”深入探讨了这个主题,旨在帮助开发者理解并熟练运用抽象类来设计高效、可扩展的代码结构。 抽象类是一种不能被实例化的特殊类,它通常包含抽象方法,这些方法没有具体的实现。...

    Java 接口和抽象类区别

    相比之下,抽象类是一个部分实现或完全未实现的类,它可以包含抽象方法(没有实现的方法)以及具体方法(已经实现的方法)。一个类可以只继承一个抽象类,但可以实现多个接口,这就是Java的单一继承与多实现机制。...

    JAVA抽象类和抽象方法(abstract)实例分析

    JAVA抽象类和抽象方法是Java面向对象程序设计中非常重要的概念,它们是Java编程语言的基础组成部分。抽象类和抽象方法可以帮助开发者更好地组织和设计程序架构,提高代码的可读性和维护性。 一、抽象类的定义和使用...

    创建Java中的抽象类.docx

    由于它们通常作为其他类的基础结构,因此不能直接创建抽象类的实例。但是,可以通过创建抽象类的子类实例来间接使用抽象类的特性。 2. **允许构造函数**:虽然抽象类不能直接实例化,但它们仍然可以拥有构造函数。...

    接口与抽象类的区别以及一些java基础

    // 接口中的方法只能通过对象调用,不能通过类名调用 }}在Java中,接口和抽象类都是用于实现多态性的重要工具,但它们之间存在显著的区别: 1. **接口(Interface)**: - 接口是一个完全抽象的类型,它只包含...

    Java4Android24_为什么用抽象类

    1. **多态性**:抽象类是实现多态的基础。多态允许我们使用父类型的引用操作子类型对象,这使得代码更加灵活,易于扩展和维护。例如,一个动物抽象类可以有狗、猫等具体子类,我们可以通过动物引用来调用子类的方法...

Global site tag (gtag.js) - Google Analytics