【Java学习笔记】接口和抽象类

从零开始:PLUMED与GROMACS整合安装全攻略 本文详细介绍了如何从零开始整合安装PLUMED与GROMACS,包括系统环境检查、MPI配置、PLUMED编译安装、GROMACS补丁应用及常见问题解决方案。通过本教程,研究人员可以快速完成分子动力学模拟工具的整合安装,实现增强采样和自由能计算功能。 阅读详情
-----------------------------------------------个人初学,如有错误,欢迎指正-----------------------------------------------
Java学习笔记之接口和抽象类

一、简介
       本文主要通过简单的实例来讲解接口和抽象类的特点,于此同时,还会分析接口和抽象类的区别。本篇的内容主要有:
       1、抽象类的声明与使用
       2、接口的声明与使用
       3、抽象类与接口的区别

二、抽象类的声明与使用
       使用abstract修饰符来表示抽象方法和抽象类。只有方法定义而不具体实现的方法称为抽象方法,抽象方法没有方法。包含一个或多个抽象方法的类必须被声明为抽象类。下面列举一个例子:
public class ExampleDemo {

	public static void main(String[] args) {
		//Car c = new Car();//定义报错
		Car car = new Bus();//创建一辆公交
		car.run();//公交启动
		car.setDirction("左");//设置方向
		car.Turned();//转向
	}
	
}


abstract class Car{//抽象类
	private String Dirction;
	
	public String getDirction() {
		return Dirction;
	}

	public void setDirction(String dirction) {
		Dirction = dirction;
	}

	public abstract void Turned();//抽象方法,无实体
	
	public void run(){//已经实现的方法
		System.out.println("乘客请注意,车要启动了!");
	};
	
}

//实例化的子类
class Bus extends Car{

	@Override
	public void Turned() {
		System.out.print("前方"+this.getDirction()+"转向,请您扶好坐稳!");
	}
	
}
运行程序后:
       乘客请注意,车要启动了!
       前方左转向,请您扶好坐稳

*关于抽象类,需要说明:
       抽象类不能直接使用,必须先实例化抽象类的子类,实例化的子类才可以使用。比如程序中的代码段Car c = new Car();会报错。可以理解为,要new一辆车,必须要和工厂说明是“什么车”(实例化子类),这样工厂才能生产出来。
       如果一个类继承自抽象类,则必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则子类必须定义为抽象类。例子中Bus作为Car的子类,实现了父类Car中抽象方法Turned。

三、接口的声明与使用
        接口(Interface)是抽象方法的集合,泛指供调用的方法或者函数。使用Interface关键字声明接口。接口都隐式的声明为公用(Public),接口中的所有方法都是抽象方法,接口是隐式抽象的,所以声明接口的时候,可以省略abstract关键字。下面举一个例子:

//做饭接口
interface Cook {
	void Cake();//蛋糕
	void IceCream();//冰激凌
}
//机器人类,实现做饭接口
class Robot implements Cook{
	
	Robot(){}
	
	@Override
	public void Cake() {//做蛋糕
		System.out.println("稍等:蛋糕马上就好!");
	}

	@Override
	public void IceCream() {//做冰激凌
		System.out.println("稍等:冰激凌马上就好!");
	}
}
public static void main(String[] args) {
		
		Robot r = new Robot();
		r.Cake();
		r.IceCream();
	}
	

运行结果:
        稍等:蛋糕马上就好!
        稍等:冰激凌马上就好!


四、抽象类与接口的区别
       相同点:
       1、抽象类和接口都不能被直接实例化
       2、都包含抽象方法

       不同点:
       1、抽象类可以包含具体实现的方法和抽象方法,而接口中所有的方法必须是抽象的且隐式声明为Public
       2、抽象类也是类,所以只能单继承,即只能有一个父类。但是接口可以继承多个接口。一个类也可以多个接口。
       3、抽象类中可以声明各种成员变量,但是接口中的所有成员都是静态常量(public static final)
      
五、小结
       抽象类的设计,是从整体宏观上对事物进行归纳,而接口则更侧重于类的局部功能。简单的例子,鸟类可以作为抽象类来设计,而接口则更适合用来补充类似于鸟类的各种行为,比如觅食,飞行,睡觉等等。
       抽象类也是类,因此它遵从类的原则,类侧重于描述“是什么”。有相同的特点,才会被归为“类”。而接口则强调“有什么”。举个例子,恐龙都会跑,但有的会飞,那么作为基本的恐龙“类”,肯定都会跑、会觅食,但是“飞行”这个技能,就不适合放在类内部,因为对于有些恐龙来讲,它是不会飞的。所以,飞更适合做接口。看下面的例子:

//恐龙类
abstract class Dinosaur{
	public abstract void eat();
	public abstract void run();
}

//飞行接口
interface Fly{
	public void fly();
}

//霸王龙继承自恐龙类
class TyrannosaurusRex extends Dinosaur{

	@Override
	public void eat() {
		System.out.println("霸王龙吃肉!");
	}

	@Override
	public void run() {
		System.out.println("霸王龙会跑!");
	}
	
}

//翼龙继承自恐龙类,进化出了飞行功能
class Pterosaur extends Dinosaur implements Fly{

	@Override
	public void fly() {
		System.out.println("翼龙会飞");
	}

	@Override
	public void eat() {
		System.out.println("翼龙吃草!");
	}

	@Override
	public void run() {
		System.out.println("翼龙也会跑!");
	}
	
}
public static void main(String[] args) {
		TyrannosaurusRex TR = new TyrannosaurusRex();
		TR.eat();
		TR.run();
		
		Pterosaur pt = new Pterosaur();
		pt.eat();
		pt.run();
		pt.fly();
	}
运行结果:
       霸王龙吃肉!
       霸王龙会跑!
       翼龙吃草!
       翼龙也会跑!
       翼龙会飞


CP2102 USB 转 UART 模块 PCB 设计项目 不幸的是,我的笔记本电脑只有 USB 端口,所以我需要在 USB 端口和 UART 接口之间进行转换。PCB 布局将足够小,因此我们不一定需要高速布线 USB 线路,但我们将在此将其作为一个简单的示例来实现,以展示如何在这种类型的电路板上实现它。相反,我们只使用屏幕左侧的电路。在这里,我们利用对之间的间距和到 L1 上的铜灌注的距离将差分阻抗设置为目标值。初始布局分为两个部分:USB 连接器和 USB 线路的 TVS 二极管放置在电路板左侧,带有二极管 D4 和 D5 的引脚接头放置在电路板右侧。 阅读详情

相关推荐

计算机视觉——多视图几何

多视图几何1.前言1.1 多视图几何概念2. 基本原理2.1 对极几何2.2 基础矩阵2.2.1 基础矩阵推导2.2.2 求解基础矩阵3. 实验过程3.1 实验数据准备3.2 实验代码3.3 实验结果及分析4. 实验中遇到的问题 1.前言 1.1 多视图几何概念 多视图几何是利用在不同视点所拍摄图像间的关系,来研究照相机之间或者特征之间关系的一门科学。 多视图几何(Multiple View ...

RuiMa的博客 7715

Java学习笔记:抽象类和接口

使用 interface 关键字// 常量// 抽象方法:计算面积// 抽象方法:绘制图形。

2503_90262217的博客 561

ITK-snap进行分割区域标注、三维显示及改变显示颜色

在进行医学图像器官分割时,无论我们是用传统方法还是深度学习,最后肯定要用到手动分割的区域作为金标准来验证我们方法的精度。但是手动标注器官的轮廓是十分耗时的,这里我介绍一个比较简单的标注方法,以肺分割作为例子。 我们使用ITK-snap作为分割标注工具。 当切片间距离比较小时,比如1mm,一个患者的完整HRCT序列通常在200张以上,如果让医生一一进行分割区域标注是非常耗时乏味的。因此,我们可以使用最简单的阈值法比如OSTU,加上基本的形态学操作对肺进行粗分割得到粗略的分割掩码,在此基础上再手动的对分割结果进

u010409517的博客 2万+

《JAVA与模式》学习笔记之接口与抽象类

《JAVA与模式》学习笔记之接口与抽象类 接口: 一个JAVA接口是一些方法特征的集合,这些方法特征当然来自于具体方法,但是它们一般都是来自于一些在系统中不断出现的方法。一个接口只有方法的特征,而没有方法的实现,因此这些方法在不同的地方被实现时可以有完全不同的行为。在JAVA语言中,JAVA接口还可以定义public的常量。 在使用接口的时候,需要指明接口本身,以及实现这个

2115

计算机组成原理实验:手把手教你用模拟程序实现中断机制(附完整代码)

本文通过一个计算机组成原理模拟实验,手把手教你从零实现一个可工作的中断系统。实验详细演示了如何配置中断控制器、编写主程序与中断服务程序,并观察中断响应、现场保护和恢复的全过程,深入解析了中断原理的核心机制。

471

手把手教你用TUSB2E22中继器实现eUSB2与USB 2.0互转(附实测数据对比)

本文详细介绍了如何利用TUSB2E22中继器实现eUSB2与USB 2.0的高效互转,包括技术背景、硬件设计要点、信号完整性测试方法及故障排查策略。通过实测数据对比,展示了TUSB2E22在信号延迟、功耗和眼图性能上的显著优势,为工程师提供了实用的工程方案。

weixin_29199873的博客 283

Java抽象类与接口(学习笔记)

抽象类 什么是抽象类: 类和类之间具有共同特征,讲这些共同特征抽取出来,就形成了抽象类。因为类本身是不存在的,所以抽象类无法创建对象(无法实例化)。 以下借用视频中总结的思维层次图: 抽象类属于什么类型: 抽象类也属于引用数据类型,跟普通的类一样。 如何定义一个抽象类: 语法: [修饰符列表] abstract class 类名{ 类体; } 抽象类是无法实例化的,天生是用来被继承...

ssH18868325485的博客 1329

uniapp 开发微信小程序请求问题 , 真机调试正常,开发工具正常,但是使用扫码预览接口都是不通的,发布到体验版也是请求失败

uniapp开发小程序体验版接口请求失败(真机可以)

weixin_60408555的博客 3954

JAVA 接口和抽象类学习笔记

JAVA 接口和抽象类学习笔记 抽象类与接口的基本概念 以及探究一下:实现类能不能同时实现多个接口

清朝烤全羊的博客 563

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

学 Simulink——基于递推最小二乘法(RLS)的工业电机转动惯量 J在线辨识仿真

Te 估算 = 1.5·p·(ψ·iq + (Ld-Lq)·id·iq)回归量:φ(k)=−ω˙(k), y(k)=Te​(k), θ=J。仿真:电机加速 0→1500rpm,观测 J^(k)→Jnom​。(可选) Jtrue​切 0.04(双惯量负载)→ 看跟踪。电机机械运动方程:Te​−TL​=J⋅ω˙+B⋅ω。J^(0)=0.005→收敛至0.02kg⋅m2✔。Te​:电磁转矩(Nm),已知(来自电流环输出)仅需 Te​,ω(驱动器已有)→ 无额外传感 ✔。

amy_mhd的博客 45

我的Java学习笔记(七)——匿名内部类、抽象类和接口

我的Java学习笔记(七) 匿名内部类 创建格式: new 父类构造器(参数列表)|实现接口(){ //匿名内部类的类体实现 } 注意事项: 使用匿名内部类时,必须继承一个类或实现一个接口; 匿名内部类由于没有名字,因此不能定义构造函数; 匿名内部类中不能含有静态成员变量和静态方法 ; 抽象类和接口 区别: 一个子类只能继承一个抽象类,但能实现多个接口; 抽象类可以有构造方法,接口没有构造方...

DTBIGhead的博客 469

SAP GUI 经典事务在 Fiori Launchpad 中的穿越之道:原理、配置与实践指南

在许多企业的 S/4HANA 或 ECC 系统里,经典 SAP GUI 事务依旧承载着关键业务。如何把这些老将自然地嵌入到 Fiori Launchpad,让用户在统一入口里无缝切换新旧 UI,是项目中经常遇到的主题。本文结合社区博文、官方文档与实际项目经验,系统梳理这一过程的技术原理、配置步骤、性能优化以及常见坑点,并给出贴近中国读者的案例解析与改进建议。阅读完毕,你将不仅知道怎么做,还会理解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 623

学习笔记:关于Java中抽象类与接口类,statict和final关键字

学习笔记:关于Java中抽象类与接口类,statict和final关键字 最近在看java中抽象类与接口类,statict和final关键字这部分,对于初学者而已,感觉有点不容易理解。 一. 首先看一下static和final关键字(简单理解为static代表全局,final代表不可改变,不可被继承或覆盖) 1)static 表示静态或全局,它可以修饰属性,方法和代码块。由于静态属性和方法是属于该类的所有对象的,所以可以用类名.静态属性/方法名来访问。用static修饰的代码块表示静态代码块,当Java虚拟

JYKgo的博客 277

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

JAVA学习笔记15——抽象类+接口

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。 本篇讲抽象类(abstract)和接口(interface)的主要内容。 首先来说一说抽象方法,抽象方法是一种只有声明但是没有方法体的方法,其意义为将方法的设计与实现分离。而抽象类之所以叫做抽象类就是因为有了抽象方法: 接下来看一看相关代码,关于一些细节方

向计算机殿堂奔跑的跑道 471

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Java学习笔记—抽象类和接口

1.抽象类 1.1 抽象类的概述 (1)概述 在继承关系中,我们将子类中的共性功能向上抽取到父类,并且对这些共性功能在父类中给出了具体的实现。但是实际上父类并不知道子类对于共性功能的具体实现,所以可以将共性功能抽象出来,具体的实现细节由子类自身的差异性,去具体实现。 所以,父类只需要给出共性功能的声明即可,也就是把共性功能定义为抽象的。 (2)抽象类的特点 1.抽象类和抽象方法必须用abstract关键字修饰 抽象类格式: abstract class 类名 {} 抽象方法格式: public abstr

qq_45407302的博客 269

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【学习笔记】Java抽象类和接口的一些总结

今天重温了一遍Java抽象类和接口的一些知识,在这里总结一下,如有不足望指出。

ricardo_的博客 542

java学习笔记——抽象类和接口

一、抽象类 类的设计应该保证父类和子类能够共享特征,有时将一个父类设计的非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。 1 抽象类:在class前面加 abstract 特点: 抽象方法所在的类必须是抽象类 抽象类不能实例化 抽象类是用来被继承的,如果要实现抽象类,必须创建一个子类去继承抽象类 子类继承一个抽象类,必须重写抽象类中所有的抽象方法(子类也是抽象类除外),重写父类方法的快捷

weixin_46271306的博客 528

【Java学习笔记】理解抽象类和接口

该文章是观看https://www.bilibili.com/video/BV1ct411n7oG?p=103后的学习笔记。 先看抽象类的实例代码: //1.有抽象方法的类只能定义为抽象类 abstract class People{ //2.抽象类可以包含属性、方法和构造方法,但构造方法不能直接new实例,只能被子类调用 protected String name; ...

WEN_Windy的博客 199

Java学习笔记-抽象类与接口

抽象类用于在类中不用具体实现,而在子类中去实现的类 抽象类 抽象类概述 抽象定义:抽象就是从多个事物中将共性的,本质的内容抽取出来 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类 抽象方法的由来: 多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能...

cj5785 2122

Java学习笔记——多态、抽象类和接口

多态、抽象类和接口相关内容

ShirleyZ1007的博客 372

【Java学习笔记三】抽象类与接口

对象的类型转换分为自动转换和强制转换两种 派生类向基类转换是自动转换,因为派生类中包含基类 基类向派生类的转换是强制转换 强制类型转换是通过在转换对象前面使用圆括号运算符来实现,圆括号内为要转换的目标类型,格式为: (<目标类型>)<表达式> ...

T_T233333333的博客 434

抽象类&接口

抽象类&接口——廖雪峰JAVA学习笔记

一出好剧 289

Java中抽象类和接口-学习笔记

目录 抽象类 抽象类概述 抽象类的特点 抽象类举例代码讲解 抽象类相关问题 接口 抽象类 抽象类概述 抽象的定义:抽象就是从多个事物中将共性的,本质的内容抽取出来。 例如:狼和狗共性都是犬科,犬科就是抽象出来的概念。 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现是由子类来完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。 抽象方法的由来: 多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只.

Rock N' Roll Forever 259

java学习笔记——抽象类 接口

抽象类:当一个父类设计的非常抽象,以至于他都没有任何具体的实例,这样的类成为抽象类。抽象类不可以用于创建对象,抽象类可以包含抽象方法,这些方法将在具体的子类中实现。 格式:在类的头部用abstract修饰符表示为抽象类,抽象类和抽象方法用斜体表示。 abstract class A{ //定义一个抽象类 public void fun(){ //普通方法 System.out.println("hello"); } public abstract void print();//抽象

ajdui的博客 201

java学习笔记(类、抽象类和接口)

1) 抽象类:           声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实

wolf的专栏 608
上一篇: 【Java学习笔记】集合
下一篇: 【Java学习笔记】继承和多态
VisionDo
博客等级 码龄11年 8粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值