类、接口、抽象类
接口和抽象类可以看成一种特-殊的类,但它们都需要类来实现,且不能创建对象,它们都丰富了类的继承;
一.类: 类与接口和抽象类的最大不同是可以通过构造函数创建对象。且用子类的构造函数创建对象时
父类的无参构造函数优先被掉用了,所以子类创建的对象能继承父类中的方法。
二.接口:1.声明一个接口 public interface 接口名{ }
2.接口中只能定义常量public final static 数据类型 常量名 (final说明是不能改变的,static说明该
常量在内存中只有一份,并且能够通过接口名.常量名直接调用不需要通过对象来调用它们)和
抽象方法 public 返回类型 函数名(数据类型 参数名,...);(注意是以分号结束,并且没有{}
号,接口中的方法默认都是Public型的。
3.接口要靠类来实现 public class 类名 implements 接口名,...{ } (可以把接口看做是实现类的
父类,并且一个类可以实现(继承)多个接口),在实现接口的类中必须要把接口和接口的父类中的
所有方法都实现。在实现类中我们就可以通过自动转型来创建一个接口型的对象:
接口名 对象 = new 类名(),但这个对象不能调用类中的函数,只能调用接口中的函数,这和
类之间的自动转型一样,子类转化为父类后不能调用子类中定义的方法。
4.接口也可以继承接口,并且一个接口可以继承多个接口 public class 类名 extends 接口名,...{ }
5.如果一个类要同时继承一个类和接口,这必须先继承类再继承接口 public class 类名 extends
类名 implements 接口名 (个人猜想可能父类中可能会实现了接口中的某个方法,若先继承接口
则父类中的那个方法会被重写,这纯属我的猜测)
6.接口中的方法都是抽象方法,因此可以省略abstract.
三.抽象类:1.声明一个抽象类 public abstract class 类名{ }
2.抽象类是介于接口和类之间的定义,它可以实现接口的所有功能。它能定义所有类和接口中的
内容(构造函数除外),但它申明抽象函数时和接口有点不同,他需要在函数前加上abstract,
public abstract 返回类型 函数名();
3.抽象类可以继承类和接口,也可以被类继承(一个类只能继承一个抽象类这和接口的
implements不同)
4.一个继承了接口类的抽象函数,接口中的的函数可以在抽象类中实现,也可以放到抽象类的子
类中实现。
5.我们会发现接口中定义了很多方法,但通常我们只需要用到其中的某个方法,如果我们直接
继承这个接口,其他方法也必须写一遍,写成一个空方法,说一我们可以弄一个抽象类实现
口中的所有方法(空方法),这样我们的子类就只要重写需要用到的方法。
总结:
接口和抽象类都不能实例化对象。
接口的优点:接口可以被多继承;设计和实现完全分离;更自然的是用多态;更容易搭建程序框架;更容易更换实现;
接口的理解:接口是一种约定,一个类实现一个接口就必须实现该接口中的所有抽象方法,这些方法可以看成是一个约定;
有些接口只有一个名字,里面什么都没有,这样的接口叫做标记接口
接口与其实现类的关系是ia-like-a
继承中父类与子类体现的关系式is-a
因为接口可以进行多重继承:
优点:对象可以调用多个基类中的接口。多种功能,加快任务实现。
缺点:易产生二义性和钻石型继承问题。多重性格,易得精神分裂。
以上如果有错误的地方希望大家指出!!
相关推荐
接口与抽象类区别 在软件开发中,接口和抽象类是两个常用的概念,但它们之间的区别却让许多人感到困惑。那么,什么是抽象类和接口?它们之间有什么区别?下面,我们就来详细地探讨这个问题。 一、抽象类 抽象类是...
这里我们将详细讨论这些概念以及抽象类与接口之间的相同点和区别。 首先,让我们来看看抽象类(Abstract Class): 1. 抽象方法是只有声明没有实现的方法,可以视为没有方法体的虚方法。例如: ```csharp public ...
Java中的类、抽象类和接口的区别和联系
【C#抽象类与接口方法】在C#编程语言中,抽象类和接口是两种用于实现多态性和封装的关键概念,它们允许我们设计灵活、可扩展的代码结构。 抽象类是一种特殊的类,它不能被实例化,而是作为其他类的基类使用。抽象类...
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...
Java 接口和抽象类 Java 编程语言提供了两种机制来实现面向对象编程的多态性:接口和抽象类。这两种机制使得 Java 应用开发具有灵活性和敏捷性。 抽象类 抽象类是一种特殊的类,它不能被实例化,不能被直接使用,...
在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,供其他类去实现或继承。在这个练习中,我们将深入理解这两种机制,并通过实际的代码示例和注释来加深理解。 首先,让我们讨论...
Java抽象类与接口实验报告
### JAVA继承基本类、抽象类、接口的区别与联系 #### 一、概述 在Java语言中,类(Class)的设计是面向对象编程的核心之一。Java提供了三种方式来扩展类的功能:基本类、抽象类和接口。这三者之间既有相似之处,也...
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
在编程领域,抽象类和接口是面向对象设计中的两个重要概念,它们用于实现代码的抽象和多态性。本实验旨在帮助你深入理解和熟练运用这两种机制。 首先,让我们来看看抽象类。抽象类是一种不能被实例化的类,它通常...
抽象类和接口实验报告
本文将深入探讨“接口抽象类”的主题,包括它们的概念、用途、区别以及在Java编程语言中的实现。 首先,让我们了解什么是接口。接口在Java中是一种完全抽象的类型,它只包含方法签名(方法名、返回类型和参数列表)...
c#中抽象类和接口。 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区 别: (1) 抽象基类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、...
在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性的关键概念,它们各自有特定的用途和优缺点。本文将深入探讨这两种概念,帮助你理解它们之间的区别以及如何在实际开发中选择使用...
抽象类和接口 在 Java 编程语言中,抽象类和接口是两种基本的编程概念,它们都是定义类的蓝图,但它们之间有着本质的区别。 一、抽象类 抽象类是一种特殊的类,它不能被实例化,必须被继承。抽象类提供了一种定义...
在C#编程语言中,抽象类和接口是实现面向对象编程(OOP)中的多态性和代码重用的关键概念。本文将深入探讨这两个概念,并解释它们在C#中的使用方式和区别。 ### 抽象类 抽象类是一种特殊的类,它不能被实例化,其...
5. **接口与抽象类的区别**:对比两者在使用上的差异,包括继承的数量限制(一个类只能继承一个抽象类,但可以实现多个接口)和成员类型(抽象类可有实例变量,接口则没有)。 6. **适配器模式**:可能会介绍如何...