抽象类与接口学习小结

抽象类:在某些类中某些功能不能定义具体的行为功能,这种功能称之为抽象功能,含有抽象功能的类,就称为抽象类。

抽象类的特点:抽象类和抽象方法必须用abstract关键字修饰

抽象类的格式:   abstract class类名{}

抽象方法的格式: 
public abstract void 方法()

抽象类不一定含有抽象方法,有抽象方法的类一定是抽象类。

抽象类不能实例化,因为该类不是具体的实现类。

抽象类需要按照多态的形式,由具体的子类实例化。

抽象类的子类要么是抽象类,要么必须重写并实现抽象类中的所有方法。

抽象类是有构造方法的,但是不能进行实例化,构造方法的作用是用于子类访问父类数据时进行父类数据的初始化。

抽象方法的访问权限必须是public

抽象类的成员特点:

成员变量:可以是变量或者常量

构造方法:有构造方法,但是无法实例化。

成员方法:可以是抽象方法,也可以是非抽象的成员方法。

抽象方法的作用:强制子类做自己的事情

非抽象方法:交由子类继承,提高代码的复用性。

抽象可以有静态变量,常量和静态方法。

方法的空实现并不等同于该方法是一个抽象方法。

多态的实现,是为了提高程序的可扩展性。

在软件开发中一般会定义一个空的类作为基类,便于组织和管理代码的体系结构。

软件分析的过程:从具体功能到抽象定义。

软件的实现过程:从抽象定义到具体功能。

抽象类的小问题

1. 抽象类不能用final修饰。抽象方法也不能用final修饰。

2. 抽象方法不能用private修饰。

3. 抽象方法不能用static修饰。

接口:用来表现一些特殊的功能的抽象叙述,交由实现接口的类完成接口中的方法。

接口的特点:

接口用关键字interface表示

格式:interface 接口名{}

类实现接口的方式 calss 类名 implements 接口名{}

接口的实例化:接口不能直接实例化,需要按照多态的方式,由具体的子类进行实例化。接口也是多态的一种表现形式

实现接口的类,要么是抽象类,要么重写并实现了接口中的所有抽象方法。

接口中定义的变量默认都是用 public static

接口中定义的方法默认都是用public abstract 修饰的。

接口里面定义的内部类,接口默认都是用public static修饰的

接口可以继承接口。

接口里面可以没有任何成员,从而作为某种标示。

接口和抽象类的区别?

接口不能有非抽象方法和 非静态变量。

接口的抽象类实现没有实际的意义。

多态的三种表现形式:具体类多态  抽象类多态   接口多态

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-20 09:03:45

抽象类与接口学习小结的相关文章

抽象类和接口学习小结

区别:1.本质区别是抽象类描述这个类是什么,而接口则是描述这个类可以做什么功能.2.接口的方法都是publice3.抽象类被继承时,子类要实现父类所有抽象方法,要overwrite关键字4.抽象类可以包含字段和普通方法5.继承时,基类只能有一个,接口可以有多个 共同点:1.继承抽象类和抽象类时,都要实现他们所有的方法2.它们都不可以被实例化 抽象方法.虚方法.普通方法1.继承抽象类时,如果要使用父类中的普通方法,加一个new关键字隐藏(如:public new void Add)2.虚方法和普通

抽象类和接口学习区别

最近复习了一些Java的基础知识,这里总结一下抽象类和接口的区别. 1. abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系.但是,一个类却可以实现多个interface. 2. 在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abst

抽象类和接口学习总结

抽象类可以称为一个模板,定义以后所有该基类的子类的最基本特征,就像定义什么叫动物,什么叫植物,所以有些属性和方法是固有的,可以在抽象类中先定义好,就像之前学过的继承一样,把某些很有用的东西传承下去:但还有些东西是不能确定的,比如,这种动物吃什么等,都还是不能确定,但是这又是其固有的和方法,这时候我们可以用关键字 abstract 将其定义为抽象方法,等待它们的子类去实现,而其子类一定要实现这些抽象方法,不然不能被创建实例,依旧是属于抽象类.抽象类适用于很强的父子关系. 抽象类可以没有抽象方法,但

抽象类与接口学习总结

当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的.所以在出c#中允许在定义方法时不写方法体,不包含方法体的方法称为抽象方法,它被abstract修饰符标记.包含抽象方法的类要声明为抽象类,但抽象类可以不包含抽象方法,抽象类不可以被实例化.如果想调用抽象类中的方法,需要创建一个子类,在子类中实现抽象方法.任何派生自抽象类的类必须使用override关键字实现该类所有的抽象成员,除非派生类自己也是抽象类.如果一个抽象类中的所有方法都是抽象的,则可以将这个

大龙的学习笔记之“虚方法,抽象方法,重写,抽象类,接口”

虚方法:可以重写,也可以不重写,英文名:virtual 抽象方法:必须重写,必须放在抽象类中,英文名:abstract 重写:可以重写三种方法:virtual,abstract,override,英文名:override 抽象类:可以有抽象方法,也可以有非抽象方法,英文名:abstract 接口:和抽象类相似,但是里面只有未实现的方法,英文名:interface 大龙的学习笔记之"虚方法,抽象方法,重写,抽象类,接口",布布扣,bubuko.com

Java基础__慕课网学习(24):深入理解抽象类与接口(转)

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:

C++语言学习(十五)——C++抽象类与接口

C++语言学习(十五)--C++抽象类与接口 一.抽象类与接口 1.抽象类简介 面向对象的抽象类用于表示现实世界的抽象概念,是一种只能定义类型,不能产生对象的类(不能实例化),只能被继承并被重写相关函数,直接特征是相关函数没有完整实现.C++语言没有抽象类的概念,通过纯虚函数实现抽象类.纯虚函数是指定义原型的成员函数,C++中类如果存在纯虚函数就成为了抽象类.抽象类只能用作父类被继承,子类必须实现父类纯虚函数的具体功能,如果子类没实现纯虚函数,子类也为抽象类.抽象类不可以定义对象,但是可以定义指

Java基础学习191221(可变参数,数组,Array类,稀疏数组,继承重写多态,抽象类,接口)

Java基础学习 可变参数 在方法声明中,在指定参数类型后加一个省略号(...). 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通参数都必须在它之前声明. public class printMax { public static void main(String[] args) { printMax(1,5,8,78,415,15); } public static void printMax( double... numbers){ if (numbers.length

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实