接口、继承、抽象类

C#的继承、接口、抽象类理解 OOP三特性:继承、封装、多态继承:C#属于单继承,即派生类最多只能有一个直接基类,但可以传递继承,即A类派生B类,B类派生C类,派生类会保留所有基类以及传递基类的字段、属性、方法等所有内容。如果要在派生类中隐藏基类内容,可以通过new关键字实现,或是通过base来调用基类的内容传递继承示例:using System; using System.Collections.Generic; using... 阅读详情

AllOop.java

import java.util.*;
import face.*;//自定义的包  
import love.*;//同上
import javax.swing.*;

public class AllOop {
	/**abstract instanceof extends interfacce implements final super等关键字
	 * @param args
	 */
	public static void main(String[] args) {
		oop();
	}
	
	public static void oop() {
		
		Top top = new Top();
		LiangYin ai = new LiangYin(520.1314);
		ai.look();
		System.out.print("Please enter the name of company: ");
		String cName = input.nextLine();
		System.out.print("Please enter the address of company: ");
		String cAddress = input.nextLine();
		System.out.print("Please count the number of employee: ");
		int cPerson = input.nextInt();
		Company company = new Company(cName, cAddress, cPerson);
		tu(company);
		Employee employee = new Employee(cName, cAddress, cPerson, 123.4, "liuwei", 25);
		Employee employee1 = new Employee(cName, cAddress, cPerson, 123.4, "liuwei", 25);
		System.out.println(employee.equals(employee1));
		tu(employee);
		paying(employee);
		System.out.println(employee.toBack());
		employee.doSomething();
	}
	//多态性,动态绑定
	public static void tu(Eepay x)
	{
		x.output();
	}
	public static void paying(Pay x)
	{
		System.out.println(x.allPay());
	}
	private static Scanner input = new Scanner(System.in);
}

interface Eepay//定义接口
{
	public int num();
	public void output();
}

interface Pay
{
	public double allPay();
}


class Company implements Eepay//实现接口
{
public Company() {}

public Company(String name, String address, int numPerson) {
	this.name = name;
	this.address = address;
	this.numPerson = numPerson;
}

public int num() {
	return (int)Math.pow(numPerson, 2);
}

public void output() {
	System.out.println(name + " " + address + " " + numPerson);
}

public String toString()
{
	return name + " " + address;
}

public String getName() {return name;}
public void setName(String name) {this.name = name;}

public String getAddress() {return address;}
public void setAddress(String address) {this.address = address;}

public int getNumPerson() {return numPerson;}
public void setNumPerson(int numPerson) {this.numPerson = numPerson;}

private String name;//公司名
private String address;//地址
private int numPerson;//公司员工数
}


final class Employee extends Company implements Eepay, Pay, Wei//final修饰符,最后的类,不能扩展的类
{
public Employee(){}
public Employee(String name, String address, int numPerson,
		double priceHour, String eName, int age)
{
	super(name, address, numPerson);
	this.priceHour = priceHour;
	this.seteName(eName);
	this.setAge(age);
}

public boolean equals(Object obj)//重写Object类的equals方法
{
	if (obj == null) return false;
	else
	{
		if (obj instanceof Employee)
		{
			Employee e = (Employee)obj;
			return e.age == this.age && e.eName == this.eName && e.priceHour == this.priceHour;
		}
	}
	return false;
}
public void doSomething()
{
	System.out.println(eName + " " + age + " " + priceHour);
}
public String toBack()
{
	return super.getAddress() + super.getName();
}
public int num()
{
	return (int)(age*this.allPay());
}
public void output()
{
	System.out.println(eName + " " + age + " " + priceHour);
}
public double allPay() {
	double all = super.getNumPerson() * priceHour;
	return all;
}
public int getAge() {
	return age;
}
public void setAge(int age) {
	this.age = age;
}
public String geteName() {
	return eName;
}
public void seteName(String eName) {
	this.eName = eName;
}
private double priceHour;
private String eName;
private int age;
}

class LiangYin extends You
{
	public LiangYin(){}
	public LiangYin(double sun)
	{
		super(sun);
	}
	
	public void look()
	{
		System.out.println(this.getSun());
	}
}

 

package包

 

Top.java

package face;

public class Top {
	public Top()
	{
		System.out.println("Good luck!Student!");
	}
}


wei.java

package face;

public interface Wei//接口单独写一个包时必须声明public而且文件名与接口名一致
{
	public String toBack();
}

 

you.java

package love;

public abstract class You//抽象类
{
	public You(){}
	public You(double sun) {
		this.setSun(sun);
	}
	
	public abstract void look();
	
	public double getSun() {
		return sun;
	}
	public void setSun(double sun) {
		this.sun = sun;
	}

	private double sun;
	private static int NUM = 1;
	
	static {
		NUM = 100 * NUM;
	}
}

抽象类,不允许创建对象的类,只需要在class前面加上abstract关键字;

在java中,一个类只能有一个超类,也就是父类,可以有多个子类,继承的关键字是extends,这样就不能像C++那样有多继承的出现;

而接口,恰恰可以解决将java中不能多继承的问题,继承接口的关键字是implements,创建接口的关键字是interface,类和接口都可以继承多个接口。
 

Java 抽象类 继承 接口 接口实现 抽象类 package cn.tedu.revive; /*用于抽象的复习*/ public class ReviewAbstract { public static void main(String[] args) { Animal a = new Pig();//创建多态 a.play(); a.jump(); } } /*一个类如果有抽象方法,这个类必须是抽象类*/ abstract class Animal{ public vo 阅读详情

相关推荐

C# 接口与抽象类的继承与实现机制深度解

本文深入探讨了C#中接口和抽象类的关键特性:1)接口可以继承其他接口,支持多重继承;2)抽象类能够实现接口,既可完全也可部分实现接口成员;3)抽象类可以继承实体类,扩展其功能。通过代码示例和对比表格,文章分析了三种关系的语法特点、使用场景及最佳实践。建议接口保持小巧、抽象类提供部分实现,并谨慎使用抽象类继承实体类。文章还提及C#8.0的默认接口实现新特性,为面向对象设计提供了全面指导。

记录学习的过程 1149

java学习笔记46--static修饰符

1)static变量 在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。 静态变量和非静态变量的区别 静态变量数属于类的,"可以"使用类名来访问,非静态变量是属于对象的,"必须"使用对象来访问. 例如: public class Student{ ...

onepiece_loves的博客 265

基于C#的跨平台上位机开发:一次编写,多平台运行

摘要: 本文探讨了如何利用C#进行跨平台上位机开发,以适配Windows、Linux、macOS等多平台需求。通过分析传统单平台开发的局限性(如API差异、硬件接口兼容性),提出基于.NET 5/6/7的解决方案,重点推荐Avalonia(类WPF的跨平台UI框架)和GtkSharp(基于GTK+)实现图形界面。同时,针对硬件通信需求,介绍了System.IO.Ports串口通信和LibUsbDotNet的跨平台支持,并强调多平台调试(VS Code、Docker)的重要性,最终实现一次编码、多端部署的高效

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1409

抽象类和接口

抽象类 什么是抽象类? 只包含抽象的概念,比如只给出动物类,具体是哪个动物不做具体解释,其中包含抽象方法,比如只包含睡觉这个方法,具体什么时间睡,睡多长时间不指明,等到在子类中继承这个抽象类之后再根据子类对象的不同来设定。 抽象方法和抽象类 抽象方法和抽象类必须使用abstract修饰符来修饰,有抽象方法的类一定是抽象类,但是抽象类中可以不包含抽象方法。 格式 抽象类格式:abstract c...

mashaokang1314的博客 433

小红书图文AI创作:输入主题,一键生成图文(coze工作流教程+获取)

输入主题,工作流一键生成小红书风格图文,30s一条,可批量生成

2301_79384090的博客 2800

IAR许可证Generation 18代际不匹配问题解析与解决

IAR Embedded Workbench 的许可证机制采用‘代际(Generation)’模型,而非简单版本号匹配——这是一种基于数字签名算法、加密协议和硬件绑定策略演进的授权安全体系。Generation 18 是 v9.30 及以上版本强制要求的许可代际标准,对应 ECDSA 签名与增强型硬件指纹校验,旨在提升防破解能力与平台适配性。当旧版许可证(如 Generation 16/17)被用于新 IDE 时,启动器会在本地完成代际校验并直接拦截,导致‘The generation feature is

weixin_34203832的博客 345

初识Java【5】——继承、抽象类、接口

从继承讲到抽象类,再从抽象类讲到接口。诸多面试关键点:final关键字、super关键字、重写与重载的区别。知其然,知其所以然的详细解释,必须要让你一读就懂!

LU_ZE_XX的博客 4415

5个免费股票数据API实测对比:从AkShare到BaoStock,哪个最适合你的AI量化项目?

本文深度评测了AkShare、BaoStock、yfinance、Alpha Vantage和EOD Historical Data这五个免费股票数据API,从数据质量、覆盖范围、更新频率、稳定性及易用性进行对比。针对AI量化项目,文章提供了详细的选型策略,帮助开发者根据项目阶段与需求,精准选择最适合的数据源,并强调了多源验证与数据清洗的重要性。

weixin_29290947的博客 5100

抽象类不能继承接口

1. 抽象类可以继承普通类,但不可以继承接口。 (public abstract class 抽象类 extends 普通类 { }) 2. 接口可以继承多接口,但不可以继承抽象类。 (public abstract class 接口1 extends 接口2,接口3 ,接口4{ }) 3. 抽象类可以实现单接口。(public abstract class 抽象类...

学弟不想努力了 7509

基于 Simulink 的 PV 光伏阵列功率发电系统仿真 Matlab

其中直流侧电压需要与光伏电池组件匹配,交流侧电压则需要与配电系统匹配,开关频率一般在几千赫兹左右,需要保证在一定范围内。根据实际需求,我们还可以通过增加负载,以及调节光照强度等方式,模拟不同的情况下系统的响应和性能表现。经过设置参数和各部分之间的传递和控制后,我们可以开始进行模型仿真。在仿真前,我们需要确定仿真时间和步长,并对整体模型进行编译。在建立完毕整体模型框架后,我们需要为每个组件设置参数,并进行传递和控制。首先,我们需要建立一个整体的模型框架,包括各个组件之间的关系和控制器的作用。

学习使你进步。 1129

YOLOV8改进:添加Wiseiou,有效涨点

【代码】YOLOV8改进:添加Wiseiou,有效涨点。

AIcurator的博客 2393

java继承,接口,抽象类

🤔?

菜鸟小木的博客 1341

FFmpeg入门详解之110:RTSP协议讲解

TCP/IP 协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过 IP 网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTSP传送的是多媒体数据。正在上传…重新上传取消RTSP是基于文本的协议,采用ISO10646字符集,使用UTF-8编码方案。行以CRLF中断(\r\n:10,13:0x0A,0x0D),包括消息类型、消息头、消息体和消息长。

福优学苑@音视频+流媒体 2529

面试题系列之接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法?

有一个面试四连击的题目:接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类?抽象类中是否可以有静态的main方法? 上面这个题目我们来慢慢的剖析一下。先从基本的概念说起。 一、接口 官方解释:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 又到了我最喜欢打比方的环节了:我们身边最常见的接口就是电脑的usb接口了。我们可以想想,我们电脑的usb接

江夏、的博客 4266

华为OD机试 新系统真题 【最小代价完成论文评审】

华为OD机试 新系统真题【最小代价完成论文评审】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【最小代价完成论文评审】多语言题解。

qq_45776114的博客 444

android 蓝牙通讯demo

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

java 抽象类和接口的继承 抽象类与接口系列之三

抽象类只能被单继承,而接口可以被多继承。 一个类中可以继承单个抽象类和多个接口 。 package java_10; public class java_10_3 { public static void main(String[] args) { // TODO 自动生成的方法存根 D3 d3 = new D3(); d3.meth_Abtract_IA3(); d3...

Izrj的博客 435

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

接口可以继承接口吗,抽象类可以继承接口吗,抽象类可以继承实体类吗?

1、接口可以继承接口,抽象类不可以继承接口,但可以实现接口。 2、抽象类可以继承实体类。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。 3.抽象类可以继承实体类,就是因为抽象类的可以继承性和有方法。 4、一个接口可以继承多个接口. interface C extends A, B {}是可以的. 一个类可以实现多个接口: class ...

yaoyafeng92的博客 3万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

接口和抽象类详解(接口继承、实现接口、抽象类继承)

先说接口:接口有 接口继承接口 和 接口的实现 单个接口的实现很好理解:如“大雁”类实现了“飞翔”接口 定义“大雁”类的时候直接重写“飞翔”接口中的方法就行了 另一种是接口继承接口 我们假设篮球运动员需要发球,女孩子需要生孩子,那么女子篮球运动员又会发球又能生孩子 我们定义了一个发球的接口和一个生孩子的接口 发球 public interface ServeBall { public void ...

lemo_ice的博客 7408

接口能否继承接口?抽象类能否实现接口?抽象类能否继承具体类?抽象类中能否有静态的main方法?

接口可以继承接口。 抽象类并不能继承接口,但可以实现接口。 抽象类可以继承具体类,前提是具体类必须具有构造函数且具有访问权限。这里需要说明,当一个具体类没有写构造函数时,系统会自动生成默认的无参构造器,意味着没有写构造函数的具体类也可以被抽象类继承。但是,一旦将具体类的无参构造器设置访问修饰符为 private 时,抽象类则不可以继承。 抽象类可以有静态的 main 方法。抽象类在面向对象中是被用来描述现实中的抽象事物, 抽象类没有对象概念所以不能被实例化. 但可以定义属性和方法, 其中属性方.

情不知所起一往而深 3万+

C#学习——浅谈接口、抽象类、接口继承、类继承

引言:  学习面向对象语言有一阵子了,听也听的多了,但是真正用起来的时候,还是有些陌生,这个Iworkspace,那个IworkspaceFactory还有次一级的很多,虽然我能够知道他们之间的关系,但是在应用的时候就有点迷了,所以想梳理一下。首先这块内容,比如接口和抽象类的比较啊,什么是继承什么是多态啊很多文章都讲过,还有书本,有些也讲的挺清楚,详细,可以自己翻翻查查,我这主要就语意和用法上作...

m0_37768631的博客 1120

Java继承、抽象类、接口

java继承、抽象类、接口的详解

weixin_67417798的博客 1563

接口可以继承接口吗?接口、抽象类、实体类的关系

1、接口可以继承接口,抽象类不可以继承接口,但可以实现接口。 2、抽象类可以继承实体类。抽象类可以实现(implements)接口,抽象类是否可继承实体类,取决于实体类必须是否有明确的构造函数。 3、抽象类可以继承实体类,这是因为抽象类可继承性且有方法。 4、一个接口可以继承多个接口. interface C extends A, B {}是可以的; 5、 一个类可以实现多个接口: class D implements A,B,C{},但是一个类只能继承一个类,不能继承多个类 class B ext

GEGEGEHUI的博客 1万+

java 接口继承抽象类_Java之继承、抽象类、接口篇

一、继承(extends)什么是继承?继承是对现实生活中的"分类"概念的一种模拟。狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"继承"关系的重要特性:通常简称为"IS_A"关系,UML类图可以这么表示:继承的语法class 子类名 extends 父类名 {……}注意:父类(parent class)和超类(super class):通常指直接上级;基类(base class)...

weixin_28543661的博客 936

接口可以继承抽象类吗_阿里架构师讲解Java接口的继承与抽象类

在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体。interface为类提供了接口规范。在继承中,我们为了提高程序的可复用性,引入的继承机制。当时的继承是基于类的。interface接口同样可以继承,以拓展原interface。接口继承接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型。...

weixin_42303003的博客 897

继承和接口的区别,抽象类和接口的区别

文章目录1. 继承和接口的区别1.1 面向对象的角度1.2 继承和接口使用上的区别示例2. 抽象类和接口之间的区别2.1 什么是抽象类和接口2.2 特点与区别抽象类的特点接口的特点区别参考链接 主要需要解决的问题: 继承和接口的区别 抽象类和接口之间的区别? 什么时候创建抽象类?什么时候创建接口? 设计框架时该如何选择? 1. 继承和接口的区别 继承不需重载所有方法,接口必须实现所有方法...

怪咖先森的博客 5017

接口,抽象类;类可以实现多个接口,类只能继承一个类,接口可以继承多个接口

接口 接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。

zhaomengxia123的博客 1万+
上一篇: 学习Java时写的小程序
下一篇: 集合类
qianliudw2
码龄15年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值