抽象类没抽象方法的例子

33- 抽象类和抽象方法 抽象类(Abstract Class)是用于被继承的类,它不能被实例化。抽象类可以包含抽象方法和非抽象方法,用于定义一组相关的方法和属性。其他类可以继承抽象类并实现其中的抽象方法。// 成员变量// 构造方法// 抽象方法// 非抽象方法public:表示抽象类的访问修饰符,可以根据需要选择合适的修饰符。abstract:表示该类是一个抽象类,不能被实例化。必须使用abstract关键字进行声明。class:表示定义的是一个类。 阅读详情

 都知道抽象类可以没有抽象方法,这时的抽象类和普通类的最大差别就是不能实例化.一直没找到在什么环境下用到这种特殊的抽象类.最近看了jdk的I/O包后,发现里面有个很好的例子,就是FilterReader类.以下是FilterReader的代码:

public abstract class FilterReader extends Reader {

    
/**
     * The underlying character-input stream.
     
*/

    
protected Reader in;

    
/**
     * Create a new filtered reader.
     *
     * 
@param in  a Reader object providing the underlying stream.
     * 
@throws NullPointerException if <code>in</code> is <code>null</code>
     
*/

    
protected FilterReader(Reader in) {
    
super(in);
    
this.in = in;
    }


    
/**
     * Read a single character.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public int read() throws IOException {
    
return in.read();
    }


    
/**
     * Read characters into a portion of an array.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public int read(char cbuf[], int off, int len) throws IOException {
    
return in.read(cbuf, off, len);
    }


    
/**
     * Skip characters.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public long skip(long n) throws IOException {
    
return in.skip(n);
    }


    
/**
     * Tell whether this stream is ready to be read.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public boolean ready() throws IOException {
    
return in.ready();
    }


    
/**
     * Tell whether this stream supports the mark() operation.
     
*/

    
public boolean markSupported() {
    
return in.markSupported();
    }


    
/**
     * Mark the present position in the stream.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public void mark(int readAheadLimit) throws IOException {
    in.mark(readAheadLimit);
    }


    
/**
     * Reset the stream.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public void reset() throws IOException {
    in.reset();
    }


    
/**
     * Close the stream.
     *
     * 
@exception  IOException  If an I/O error occurs
     
*/

    
public void close() throws IOException {
    in.close();
    }


}

可以看到FilterReader就是一个没有抽象方法的抽象类,里面的每个方法都是调用构造函数传入的Reader对象的方法.这种抽象类你不能实例化它,因为实例化它没意义,它还没实现任何Filter的功能.在extends具体子类时实现Filter功能,实例化相应的子类才有实际意义.

我们可以写FilterReader的一个具体子类如下:

/**
 * FilterReader是一个抽象类,不能实例化该类,FilterReader类的每个方法都是实现的,
 * 里面调用的都是FilterReader(Reader in)的传入参数in的方法.    
 
*/

public class UppercaseConvertor extends FilterReader{
    
// 构造方法由FilterReader的protected上升到public的
    public UppercaseConvertor(Reader in) {
        
super(in);
    }

    
    @Override
    
public int read() throws IOException{
        
int c = super.read();
        
return (-1==c?c:Character.toUpperCase((char)c));
    }

    
    @Override
    
public int read(char[] buf,int offset, int count) throws IOException{
        
int nread = super.read(buf, offset, count);
        
int last = offset + nread;
        
for(int i=0;i<last;i++)
            buf[i] 
= Character.toUpperCase(buf[i]);
        
return nread;
    }


    
public static void main(String[] args) throws IOException {
        UppercaseConvertor uc 
= new UppercaseConvertor(new FileReader("d:\log.txt"));
        BufferedReader br 
= new BufferedReader(uc);
        String r;
        
while(null!=(r=br.readLine())){
            System.out.println(r);
        }

    }

}

 

Workbench中直接调用ICEM CFD进行网格划分 自从ANSYS 12.0之后,ICEM CFD就从Workbench中被分离出去,作为一个独立的程序使用了。取而代之的是Meshing模块。 在Meshing的属性节点菜单中右键点击Mesh,选择Insert > Method,插入方法。 选择需要划分网格的几何体,点击apply。此时Geometry显示为1 Body。 设置Method为MultiZone,如果不设置成这个的话,找不到进入ICEM CFD的入口。如果要划分四面体,可以在Mapped Mesh Type中选择其他类型。 阅读详情

相关推荐

THB6128步进电机驱动芯片介绍

THB6128芯片也称为步进电机驱动芯片,采用BiCDMOS工艺,IC管脚间距为1mm的小型MFP30KR封装而成。

weichen_78的博客 7182

java的抽象类可以包含抽象方法,也可以不包含

java的抽象类可以包含抽象方法,也可以不包含抽象方法。抽象类不能够被实例化。抽象类是一个不完全的类,或者认为是不完全的类。声明抽象类的意图是可以创建一个子类来完成抽象类的实现。

听海边涛声 606

今天出一个candence 17.4 allego的安装教程

7、安装完成,接下来进行补丁更新,找到Hotfix_SPB17.40.035_wint.iso软件 ,右击鼠标选择装载。6、因为之前选择的定制安装,这一步不知道具体要安装啥,因此都勾选,点击NECK,接下来等待安装完成。后面经过仔细对比,发现是前面更新补丁时选择了F盘,F盘是candence安装包,不是补丁。8、在破戒大师里选择安装更新补丁,并找到刚才装载的安装包里的程序,点击下一步。3、打开破戒大师,找到安装candence进行如下图选择,点击下一步。有耐心的人可以重新卸了再装一边,我就不卸了,直接装。

hcvinh的博客 2727

抽象类没有抽象方法

没有抽象方法的抽象类也可以被继承的。不需要强制子类覆盖,可以简化代码,只覆盖子类关心的内容,常用于事件监听的listerner.

Leonchen1024 836

转录组PCA分析3大常见误区:数据标准化、离群样本与批次效应处理

本文深入探讨转录组PCA分析中的三大常见误区:数据标准化、离群样本识别与批次效应处理。通过实战案例和R代码演示,揭示如何优化PCA结果以提升生物学解释力,特别关注数据标准化策略的选择和批次校正方法的应用,帮助研究者避免常见陷阱并获得可靠的转录组分析结果。

weixin_28362173的博客 374

Vue3项目实战:CKEditor5富文本编辑器从安装到隐藏不需要的功能

本文详细介绍了在Vue3项目中集成并深度定制CKEditor5富文本编辑器的完整流程。通过分析其模块化架构,指导开发者从标准构建出发,移除图片、表格等冗余插件,创建专属轻量构建,从而显著减小打包体积并提升用户体验。文章结合实战代码,涵盖了环境搭建、自定义构建配置、高级优化技巧等关键步骤。

weixin_29016833的博客 288

Java中没有抽象方法的抽象类

好久没写过博客了,最近一段时间确实是太忙了,忙于各种琐碎的事情。然后突然想写点东西,都不知道要写什么了,于是就随便写一点吧。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类,比如常见的有HttpServlet类。 但是抽象类是不能被实例化的,即使它没有抽象方法。 没有抽象方法的抽象类的价值在于:实例化了没有意义,因为类已经把方法都实现了,而且它不需要通过不同的对象来保存

辛星,前进的路上. 6806

《Zephyr OS 入门与实战》第3章:第一个 Zephyr 程序 - Blinky 实战

解决方法:确认设备树overlay文件已正确加载。返回值,确认驱动初始化状态。

2301_79143213的博客 542

java(10): 抽象类是否可以没有方法和属性?

答案是肯定的,可以。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。所以,java中 抽象类里面可以没有抽象方法。注意即使是没有抽象方法和属性的抽象类,也不能被实例化。 ...

丶一个有梦想的老实人 的博客 6357

第六部分:VTK进阶(第182章 体素化与隐式建模)

本文系统介绍了基于点云构建有符号距离场(SDF)的核心原理与VTK实现方法。主要内容包括:1)SDF的基本概念与算法原理,通过体素网格隐式表达几何表面;2)关键参数配置指南,如体素分辨率、边界范围和影响半径的选择;3)点云法向估计、SDF计算与等值面提取的完整工作流程;4)常见问题解决方案与性能优化建议。文中提供了详细的C++代码示例,展示从随机点云生成SDF并重建曲面的完整过程,特别强调了法向估计、参数调优和后处理等关键环节。该方法适用于点云表面重建、几何处理等应用场景。

仰望星空的博客 530

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

没有抽象方法的抽象类有什么意义?

做法:用一个类A去实现一个接口(多个方法),将A作为父类,再用具体实现的子类继承实现接口的父类A,子类就可以只重写父类中的需要用的方法,减少无用代码的书写。但是如果不想子类把所有的方法都实现,我只想用到一个,其他的我还不想去覆盖。

Never say never 803

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

抽象类里没抽象方法的例子

 都知道抽象类可以没有抽象方法,这时的抽象类和普通类的最大差别就是不能实例化.一直没找到在什么环境下用到这种特殊的抽象类.最近看了jdk的I/O包后,发现里面有个很好的例子,就是FilterReader类.以下是FilterReader的代码: public abstract class FilterReader extends Reader ...{    /** *//**    

三十而立 6131

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java中的抽象类和抽象方法

抽象方法:在类中没有方法体的方法,就是抽象方法。 抽象类:含有抽象方法的类就叫抽象类。 抽象类中的抽象方法必须被实现! 如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类! 抽象类中的普通方法,可以不必实现。 1 用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 : abstract cl

mal327的专栏 5万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

抽象方法以及抽象类

抽象类: eg: 学生类: 成员方法:职位描述 比如说学生类中,有一个职位描述的成员方法,可是学生中有很多的职位 这里只提到职位的描述,但并没说什么职位,班长,组长,职位的描述都是不一样的。 在这里,职位描述这个成员方法我们就称为是抽象方法。 抽象方法定义格式: public abstract void describe(); 这里我们并不写执行体,因为每个职位的描述不一样。 抽象类:抽象方法所...

chen404897439的博客 7501

抽象类必须要有抽象方法吗?

答案是:不必须。 这个题目主要是考察对抽象类的理解。 说一下我个人的理解吧。 1.如果一个类使用了abstract关键字修饰,那么这个类就是一个抽象类。 2.抽象类可以没有抽象方法 3.一个类如果包含抽象方法,那么这个类必须是抽象类,否则编译就会报错。 4.最关键的一点就是如果一个类是抽象类,那么这个类是不能被实例化的。 如下: public abstract cl...

qq_35771266的博客 1万+

抽象类和抽象方法详解

一、抽象(abstract)的使用   当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。   我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在以后子类进行重用,进行具体化。这样,抽象类也就诞生了。   例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象

我真的睡不够 3687

java中抽象类和抽象方法

苹果这个具体的水果,它具有的属性为,红色;它具有的方法为,被啃。那么,水果,这个定义,不知阁下又该如何应对?很明显,这是一个抽象的概念,是苹果、香蕉、桃子......的集合,而水果具备的方法,被吃,又该如何描述?是像苹果一样直接啃,核扔掉?还是像香蕉一样拨开皮,吃掉里面的果肉?在java中,可以将苹果视为一个类,水果这种抽象的概念即为抽象类;苹果这个类中,方法,被啃,可以具体执行。水果这个抽象类,方法,被吃,无法具体执行,怎么吃?啃?剥皮?切开?被吃,这个抽象类中的方法即为抽象方法。

weixin_74141222的博客 2829

抽象方法和抽象类

声明一个抽象类机动车,并在机动车类中声明抽象方法启动、加速和刹车,创建轿车子类(一个为自动挡,一个为手动挡)实现父中的抽象方法,并通过子类的实例化对象调用这些方法。定义: Java中可以定义不含方法体的方法,方法的方法体由其所在类的子类根据实际需求去实现,这样的方法叫抽象方法,包含抽象方法的类必须是抽象类。上转型对象不能调用子类新增的成员变量和方法,但是可以调用父类隐藏的变量/方法和继承以及重写的变量和方法。抽象方法是不完整的方法,只有方法声明,没有方法体。

Qiutan22的博客 4072

JAVA抽象类,抽象方法

类用于描述现实生活中一类事物。类中有属性、方法等成员。父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有 意义,而方法主体则没有存在的意义了。某种情况下,父类只能知道子类应该具备一个怎样的方法,但是不能够明确知道如何实现该方法。只能在子类中才能确定如何去实现方法体。例如:所有几何图形都应该具备一个计算面积的方法。但是不同的几何图形计算面积的方式不同。我们把没有方法主体的方法称为抽象方法。Java语法规定,包含抽象方法 的类就是抽象类。

0 3006

抽象类和抽象方法

抽象方法: 就是加上abstract关键字,然后去掉大括号,直接分号结束 抽象类:抽象方法所在的类,必须是抽象类才行,在class之前写上abstract即可。 如何使用: 1.不能直接创建new抽象类对象。 2.必须用一个子类,继承抽象的父类; 3.子类必须覆盖重写 父类当中所有的抽象方法 覆盖重写(实现):去掉抽象方法的abstract关键字,然后补上方法体大括号的内容 4.创建子类对象使用 ...

林海 4635

Java中没有抽象方法的抽象类的存在意义

含有抽象方法的类一定是抽象类,但是抽象类不一定含有抽象方法。 Person类(没有抽象方法的抽象类): public abstract class Person { private String name; private int age; public Person() { } public Person(String name, int ...

caigen0001的专栏 2427

抽象类+抽象方法

Java中可以定义没有方法体的方法,该方法由子类来具体实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。在java中没有方法体的方法称为抽象方法。

小母的博客 3600

抽象类继承抽象类要不要实现父类抽象方法_JAVA 抽象类

一、抽象类的概念C extends B, B extends A 在继承过程中,形成了一个继承金字塔。位于金字塔底部的类越来越具体(强大),位于金字塔顶部的类越来越抽象(简单)。例如:人类继承于(属于)动物类,鱼类继承于(属于)动物类。人类有睡觉(闭眼睡)的方法,鱼类有睡觉(睁眼睡)的方法。动物类也有睡觉的方法,但动物类是人类和鱼类的父类,因此形容动物类睡觉的方法过于抽象,不确定如何去形容,此...

weixin_39803207的博客 1291

java抽象类中的方法都是抽象方法吗_抽象方法必须在抽象类中吗

抽象方法必须在抽象类中吗2020-07-01 15:01:18文/叶丹1、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。2、Final类中的属性和方法都必须被final修饰符修饰。3、最终类不能派生子类,最终方法不能被覆盖。4、子类要调用父类的方法,必须使用super关键字。抽象方法:java中的抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的...

weixin_31518415的博客 1万+
上一篇: Scala和并发编程
下一篇: 36氪采访触宝王佳梁:打电话本身就是个你可能忽视了的O2O入口
fancylovejava
博客等级 码龄16年 1052粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值