`
johnnycmj
  • 浏览: 36796 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

07.面向对象(4)--抽象类和接口

 
阅读更多

 

7.接口和抽象类

7.1、抽象类

java中可以定义一些不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况去实现,这样的方法就是抽象方法,包含抽象方法的类就叫抽象类。一个抽象类中可以有一个或多个抽象方法。

抽象方法必须用abstract修饰符来定义,任何带有抽象方法的类都必须声明为抽象类。

1)抽象类定义规则:

抽象类必须用abstract关键字来修饰;抽象方法也必须用abstract来修饰。

抽象类不能被实例化,也就是不能用new关键字去产生对象。

抽象方法只需声明,而不需实现。

含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆盖所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。

2)抽象方法的写法:

abstract 返回值类型 抽象方法( 参数列表 );

抽象类和抽象方法的例子:

 

abstract class A{
			abstract int aa(int x,int y);
		}

 

 注意:含有抽象方法的类肯定是抽象类,抽象类中的某个方法不一定是抽象的。

 

7.2、接口

如果一个抽象类中的所有方法都是抽象的,我们就可以将这个类用另外一种方式来定义,也就是接口定义。接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

例如:

 

public interface Runner {
			int ID = 1;
			void run();
		}

 在接口Runner的定义中,即使我们没有显示的将其中的成员用public关键字标识,但这些成员都是public访问类型的。接口里的变量默认是用public static final标识的,所以,接口中定义的变量就是全局静态常量。

 

我们可以定义一个新的接口用extends关键字去继承一个已有的接口,我们也可以定义一个类用implements关键字去实现一个接口中的所有方法,我们还可以去定义一个抽象类用implements关键字去实现一个接口中定义的部分方法。

例如:

 

interface Animal extends Runner{
			void breathe();
		} 

 

class Fish implements Animal{
		  public void run(){
			System.out.println("fish is swimming");
		  }
		  public void breathe(){
		 	System.out.println("fish is bubbling");
		  }
		} 

 

abstract LandAnimal implements Animal{
			public void breathe(){
				System.out.println("LandAnimal is breathing");
		  }
		}

 一个类可以在继承一个父类的同时,实现一个或多个接口,extends关键字必须位于implements关键字之前,如我们可以这样定义类Student。

class Student extends Person implements Runner{
			……
			public void run(){
				System.out.println(“the student is running”);
			}
			……
		}
  下面是对接口的实现及特点的小结:

实现一个接口就是要实现该接口的所有方法(抽象类除外)。

接口中的方法都是抽象的。

多个无关的类可以实现同一个接口,一个类可以实现多个无关的接口。

 

分享到:
评论

相关推荐

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    Java中的`final`关键字、抽象类和接口是面向对象编程中的核心概念,它们共同构建了类的层次结构和多态性。以下是对这些概念的详细解释: 1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能...

    面向对象和抽象类和接口的理解

    理解面向对象、抽象类和接口的概念,并熟练运用它们,对于编写可维护、可扩展的代码至关重要。在实际项目开发中,合理地使用这些概念可以帮助我们更好地组织代码结构,提高代码的复用性和灵活性。

    C#面向对象之接口和抽象类详解

    ### C#面向对象之接口和抽象类详解 #### 一、接口 **1. 概念** 接口在C#中是一种特殊类型的类,它定义了一种协议,即一组相关的行为和属性,这些行为和属性可以被任何类或结构实现。接口可以包含方法、属性、事件...

    Java开发接口和抽象类的区别共2页.pdf.zip

    本篇内容将深入探讨接口和抽象类的区别,帮助Java开发者更好地理解这两种面向对象编程的机制。 1. 定义与目的: - 抽象类:抽象类是不能实例化的类,它通常包含至少一个抽象方法(没有具体实现的方法)。抽象类的...

    Java基础笔记知识点.rar

    JavaSE 之前整理的笔记,一共16章:1.Java概述,2....面向对象4(抽象类 接口 包装类),8.GUI编程--awt,9.GUI编程--计算器案例,10.GUI编程--Swing,11.集合,12.多线程,13.IO流,14.网络编程,15.JDBC编程,16.异常处理

    java基础--3.面向对象-1

    在Java中,多态主要通过接口(Interface)和抽象类(Abstract Class)以及方法的覆盖(Override)和重载(Overload)来实现。这意味着一个父类型的引用可以指向其子类型对象,调用的方法会根据实际的对象类型动态...

    【IT十八掌徐培成】Java基础第05天-03.抽象类-抽象方法-修饰符组合.zip

    在IT领域,尤其是在Java编程语言的学习中,抽象类和抽象方法是面向对象设计的重要概念。今天我们将深入探讨这个主题,特别是在Java基础课程的第五天,讲师徐培成讲解的"抽象类-抽象方法-修饰符组合"部分。下面将详细...

    Java面向对象编程-ATm取款机系统

    在Java编程领域,面向对象编程(Object-Oriented Programming,OOP)是一种广泛采用的设计模式,它基于类和对象的概念,使代码更加模块化、可维护性更强。在这个"Java面向对象编程-ATM取款机系统"项目中,我们可以...

    面向对象与Java实现(抽象类、接口

    Java作为一门广泛使用的面向对象语言,提供了丰富的工具和语法支持OOP原则,其中抽象类和接口是实现这一原则的关键组成部分。 ### 抽象类 抽象类是一种特殊的类,它不能被实例化,主要目的是为了被继承。抽象类中...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    在C#编程语言中,类、接口、虚方法和抽象方法是面向对象设计的重要组成部分。这里我们将详细讨论这些概念以及抽象类与接口之间的相同点和区别。 首先,让我们来看看抽象类(Abstract Class): 1. 抽象方法是只有...

    IBM-ETP-java培训07.面向对象程序设计 3.ppt

    - 封装是面向对象的三大特性之一,它隐藏了对象的内部细节,只对外提供公共接口来访问和修改数据。在Java中,通过访问修饰符(public, private, protected)实现封装。 3. **继承**: - 继承允许一个类(子类)...

    抽象类和接口 区别分析

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

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

    通过学习这个Java面向对象抽象类和接口实现的视频教程,你将能够更好地理解如何在实际项目中应用这些概念,提高代码的可重用性和灵活性。在实际编程过程中,不断实践和熟悉这些面向对象设计原则,将使你的代码更加...

    Java 接口.pdf Java面向对象设计 - Java接口 什么是接口? Java中的接口定义了一个引用类型来创建抽象概念

    Java接口是面向对象编程中的一个重要概念,它通过定义一组抽象行为规范来提高代码的复用性和灵活性。掌握接口的使用对于理解和编写高质量的Java代码至关重要。通过本篇文章的学习,相信您已经对Java接口有了深入的...

    面向对象程序设计与实践-Java抽象类和接口[33页].pptx

    面向对象程序设计是Java编程中的核心概念,其中Java抽象类和接口是实现多态性和类的继承的关键工具。本章内容主要围绕这两个主题展开,旨在帮助学习者掌握它们的定义、语法规则以及实际应用。 首先,抽象类是无法...

    JAVA 面向对象程序设计第4章 抽象类和接口.pptx

    在Java面向对象程序设计中,抽象类和接口是两种重要的机制,它们用于实现代码的抽象和多态性。本章主要介绍了抽象类、final修饰符以及接口的概念和使用。 4.1 抽象类 抽象类是不能实例化的类,主要用于提供一种...

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

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

    C++小知识.rar----C++

    - **面向对象设计**:掌握封装、继承、多态等概念,以及何时适当地使用抽象类和接口。 - **命名空间**:合理使用命名空间以避免全局名字冲突。 - **RAII(Resource Acquisition Is Initialization)**:理解RAII...

    实验4-多态与抽象类.doc

    ### 实验4-多态与抽象类 #### 实验目的: 1. **掌握抽象类**:理解抽象类的概念,学会...以上实验内容涵盖了Java中的抽象类、接口以及多态性的基本概念和使用方法,有助于深入理解面向对象编程的核心思想和技术细节。

Global site tag (gtag.js) - Google Analytics