abstract类的意义

一.抽象类和普通类的区别以及作用

抽象类的抽象方法,子类必须实现。比如父类有的方法在设计时,并不知道该怎么写,而要留给子类去实现,但又必须实现。这样的强制性是普通类所不具备的

1.约束定义, 比如某个方法 是抽象方法,子类必须要实现

2.基类公共包装,比如,封装一个公共的Page基类,把某些公共方提出来,方法里全是 虚方法,都有自己的方法实现,但是这个是类是一个抽象,不能实例化,只能由子类来实例化,子类可以重写基类方法,也可以直接用基类方法。

上面两点有一个公共的特点,就是基类一般不能示例化,用途不一样,一种是子类必须实现,一种是基类实现了,子类可以改写。

时间: 2025-01-14 15:16:58

abstract类的意义的相关文章

事实证明,abstract类除了不能用new实例化和类没什么区别

abstract类是抽象类,不能够实例化,大家都知道,abstract类往往和接口interface一块儿使用,针对接口中一些公共的方法进行实现,然后实体类去继承抽象类和接口.虽然abstract类不能实例化,但是abstract类可以有构造函数,其构造函数和实体类的构造函数没什么区别.如下: abstract class A { public A() { Console.Write("A "); } public virtual void Method() { Console.Wri

java中的abstract类

Abstract是Java中的一个重要关键字,可以用来修饰一个类或者一个方法.修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类.一个类中只要有一个abstract方法,那么这个类就要被声明为abstract,但是其中可以有非abstract方法.abstract类可以使得类的设计者能够创建方法的原型,而真正的实现留给使用这个类的人.继承一个abstract类的子类,要么实现父类的所有abstract方法,要么也声明为abstract类,

java 容器深入研究之使用Abstract类定制

package org.rui.collection3.map; import java.util.AbstractMap; import java.util.AbstractSet; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.Linke

Interface与abstract类的区别

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象.含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的.abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法.如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型. 接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须

Java集合(3):使用Abstract类

每个java.util容器都有其自己的Abstract类,它们提供了该容器接口的部分实现.下面是一个定制自己的Map的例子(List set就省略了): 定制自己的Map实现AbstractMap-->Map,需要实现[Set<Map.Entry<K,V>> entrySet()]方法 实现[Set<Map.Entry<K,V>> entrySet()]方法分两步: (1) 实现Set<E>接口 (2) 实现Map.Entry<K,V

java中请给一个Abstract类实现接口的实例!

2.Abstract类实现接口 (视频下载) (全部书籍) 马克-to-win:如果实现某接口的类是abstract类,则它可以不实现该接口所有的方法.但其非abstract的子类中必须拥有所有抽象方法的实在的方法体:(当然它abstract爹的也算作是它的) If a class implements an interface, it must implement all of its methods in the interface, otherwise, this class must b

如何使用Abstract类?抽象类的威力

简介: 今天我想谈谈如何使用抽象类,以及抽象类真正的威力.本文将结合具体业务来说明如何使用抽象类,由于本人接触业务时间不长,如有杠精,请您老再看下标题. 业务简述: 本人目前只接触过PMS(物业管理系统),公司主要业务的是美国的租房业务.由于美国租房和中国租房在后台可能有点差别,本文不做叙述.下面我们直入主题. 当用户点击租房之后,我们是要创建一个订单,而在创建订单的时候,需要做很多事,本文只做一个简化版的,避免偏离主题.当创建订单时,需要做以下几件事: 1.Available 检查是否可用 2

抽象类和抽象方法 abstract类和abstract方法

可以使用abstract来修饰一个类或者方法. 用abstract修饰的类表示这个类是一个抽象类,用abstract修饰的方法表示这个方法是一个抽象方法. 抽象类不能被实例化. 抽象方法是只有方法声明,而没有方法的实现内容. 一个类中,只要有一个抽象方法,这个类必须被声明为抽象类抽象方法在非抽象子类中必须被重写.重写了这两个方法,虽然方法体里面 {} 的内容是空的,也算重写了这个方法.注意看重写方法的参数名称,这里只要参数数量一致就可以,不要求参数的名称必须一致. 一个类中,只要有一个抽象方法,

深入解读php中抽象(abstract)类和抽象方法

在面向对象(OOP)语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法作为外部代码访问的接口.而抽象方法就是为了方便继承而引入的,现在来看一下抽象类和抽象方法分别是如何定义以及他们的特点. 什么是抽象方法? 我们在类里面定义的只有方法名没有方法体的方法就是抽象方法,所谓没有方法体就是在方法声明的时候没有大括号以及其中的内容,而是直接声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字"abstract"来修饰. 1.抽象关键字 :abstract 抽象就是无