面向对象程序设计——接口、内部类、枚举类

DANN实战:用Python手把手教你实现对抗迁移学习(附完整代码) 本文通过Python实战教程,手把手教你实现DANN对抗迁移学习模型,以解决领域偏移问题。文章详细解析了领域对抗神经网络的核心机制,包括梯度反转层和领域判别器的构建,并提供了从数据准备、模型搭建到训练评估的完整代码,帮助开发者快速掌握这一强大的无监督领域自适应技术。 阅读详情

接口

接口的概念

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

定义接口:
1)接口可以看成是特殊的抽象类。即只包含有抽象方法的抽象类
2)可以通过infterface定义一个接口
3)接口者不可以定义成员变量,但是可以定义常量
4)接口中只可以定义没有实现的方法(抽象方法)
    可以省略 public abstract 其中一个或者两个(常量也可以)
接口的继承

接口间存在继承关系,一个接口可以通过extends关键字继承另外一个接口。子接继承了父接口中定义的所有方法。

@Test
public void t1(){
    B b = new B(){//可以在子类中通过内部类的方式对父类的抽象方法进行重写
        public void a1() {
            System.out.println("这是通过匿名内部类通过调用子类构造器对象实现父接口的a1方法");

        }
        public void a2() {
            System.out.println("这是通过匿名内部类通过调用子类构造器对象实现父接口的a2方法");
        }
    };
b.a1();
b.a2();
B.innerB bb = new B.innerB();//可以通过这种形式创建内部类对象
bb.at3();
B.innerB.at3();
/**
 * 注意:类里面可以定义以下三种形式的内部类
 * 1)非静态内部类:可以在内部定义若干成员变量和非静态方法,
 *     但是不能通过创建外部类对象去调用该普通方法
 * 2)静态内部:内部可以定义若干成员变量和若干静态方法、若干非静态方法
 *    可以通过    外部类名.内部类名.任何一种方法名()  的方式去调用。
 * 3)匿名内部类:在创建类对象时可以通过以下形式去重写(或实现)接口或
 *    抽象类的方法,
 *    类名 对象名 = new 类名(){//可以在子类中通过内部类的方式对父类的抽象方法进行重写
 *             public void a1() {  }
 *             public void a2() { }
 *             …………………………
 *    然后通过 对象名.方法名的形式去调用;
 *
*  补充和扩展:
*  1)接口也可以创建对象,和类创建对象一致,通过匿名内部类的形式去创建
*  2)可以通过
*       Outter.Inner a = new Outter.Inner(); 
*       a.内部类方法();
*       这形式去创建内部类对象(其实抽线类也可以)
 */
---------------------------Java文件分界线--------------------------------------
package myinterface;

public interface A  {//定义一个接口
    /**
     * 接口:
     * 1)接口也是一种引用数据类型,文件用interface修饰
     *    定义为public interface A{方法体}
     * 2) 接口里面可以存在 若干常量 若干抽象方法
     * 3)接口子接口必须实现父接口的所有抽象方法(除非子接口是抽象类)
     * 4)接口不能implents连接接口,但是接口可以通过extends继承接口
     *      抽象类可以连接接口
     *          public interface B extends A {   }
     *          public abstract class B implements A {    }
     */
    final static int c=1;//常量
    public abstract void a1();
    public abstract void a2();
//    public static void a3();//Extends method are not supported at language level '5'
}
---------------------------Java文件分界线--------------------------------------
package myinterface;

public abstract class B implements A {
//接口子接口必须实现父接口的所有抽象方法
public void a1() {
    System.out.println("B抽象类中实现接口A方法a1");

}
    public void a2() {
        System.out.println("B抽象类中实现接口A方法a2");
    }

    public static class innerB{
        public static void at3(){
            System.out.println("这是子类B的静态方法");
        }
    }
}
---------------------------Java文件分界线--------------------------------------
@Test
public void t2(){
    A a = new A(){
        public void a1() {
            System.out.println("这是通过匿名内部创建的接口去实例化的方法a1");
        }

        public void a2() { System.out.println("这是通过匿名内部创建的接口去实例化的方法a1");}
    };
    a.a1();
    a.a2();
}
接口与抽象类的区别

在这里插入图片描述
在这里插入图片描述

精度0.01%决定续航多20km|新能源汽车研发测试:功率分析仪到底有多硬核? 新能源汽车测试、功率分析仪、电驱系统、效率MAP、谐波THD、GB/T18488、CLTC工况、三电测试、台架标定、能量流分析。中的核心作用,用公式、思维导图、实战金句与避坑指南,帮研发测试人员把准数据、提效率、降返工,看完就能落地用。点击关注,进公众号主页查看历史文章,**台架接线图、效率MAP模板、GB/T18488测试清单等。优化弱磁/调制策略,高效区占比提升5%,CLTC续航直接+8~20km。同样工况,两次数据差0.8%,报告根本没法交。结果:数据飘、定位慢、反复返工、认证不过。 阅读详情

相关推荐

数字IC设计——功耗分析

功耗是数字IC芯片的一个重要指标

知识,既贵,又便宜。 9361

面向对象设计(OOD)

面向对象设计的本质是 **“合理划分责任”**—— 就像设计一个公司的组织架构:明确每个部门(类)的职责,部门之间通过规范流程(接口)协作,这样公司(系统)才能高效运转,且便于扩招(扩展功能)。好的面向对象设计,能让代码在需求变化时 “稳如泰山”;而糟糕的设计,会让代码变成 “牵一发而动全身” 的泥潭。本质是 “对抗复杂性”:通过划分责任、控制耦合,让系统在变化中保持稳定。思维是 “责任分配”:从 “谁该做这件事” 出发设计类,而非从 “需要做什么事” 出发堆砌功能。原则是 “避坑工具”

AlbenXie的博客 1367

Quartus II 13.1 出现 ‘‘can‘t find design entity <Filename>‘‘ 问题的解决方法

Quartus II 13.1 出现 ''can't find design entity '' 问题的解决方法

qq_62076686的博客 1万+

面向对象——接口

接口:接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为,可以把它看成是实现一组类的模板。接口可有方法、属性、事件和索引器或这4种成员类型的任何组合构成,但不能包含字段。 类和结构可以像类继承基类一样从接口继承,但是可以继承多个接口。当类和结构继承接口时,它继承成员定义但不继承实现。若要实现接口成员,类和结构中的成员必须是公共的,非静态的,并且与接口成员具有相同的名称和签名。类或...

AI浩 1万+

青龙面板实战:用快手极速版脚本日赚XX元的核心参数解析

本文深入解析了青龙面板运行快手极速版脚本的核心参数配置,旨在帮助进阶用户提升收益稳定性。重点剖析了设备标识符(did)的获取原理、多账号Cookie的精准拼接规则,以及如何通过科学设置定时任务频率来量化并优化收益,实现细水长流的稳定收益。

weixin_29310605的博客 1073

Mit6.S081-实验1-Xv6 and Unix utilities

Mit6.S081-实验1-Xv6 and Unix utilities前言一、Boot xv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析 前言 一、Boot xv6 1,实验目的 利用qemu启动xv6 2,操作流程 1)切换到xv6-labs-2020代码库的lab1分支 git checkout ut

code a better life~ 36万+

面向对象之接口——

本篇我们介绍接口、接口的多态性以及接口的作用,然后浅浅提一下接口和抽象类的异同,最后我们介绍面向接口编程的思维。

qq_51607772的博客 643

Monorepo与pnpm:前端项目管理的完美搭档

pnpm又称 performant npm,翻译过来就是高性能的npm。Monorepo是一种项目开发与管理的策略模式,它代表"单一代码仓库"(Monolithic Repository)。在Monorepo模式中,所有相关的项目和组件都被存储在一个统一的代码仓库中,而不是分散在多个独立的代码仓库中,这些项目之间还可能会有依赖关系。

m0_68271787的博客 2562

面向对象-接口

在java中只有单继承,当一个类需要继承多个类的时候,那么就需要考虑使用接口 在项目开发过程中,接口用的非常广泛 用法: 1.接口使用interface定义 2.如果一个类实现了一个接口,那么需要把接口中的所有的抽象方法全部实现 3.一个类实现接口使用implements 2.如果一个类实现了一个接口,那么需要把接口中的所有的抽象方法全部实现 特征: 1.接口中的方法都是使用public abstract修饰的,即使不写public修饰...

m0_64097515的博客 701

如何用Python编程实现算术割圆术?

第10章 割圆术 Python编程要点 from … import …语句 math模块的sqrt()函数 round()函数 10.1 图解九章 {:–}觚( gū ):正多边形。“六觚”即正六边形,“十二觚”即正十二边形。 图10-1 六觚、十二觚、二十四觚 提示 图10-1所示由图解九章源码中的“图解割圆术.py”自动绘制而成,我们可运行脚本文件,查看动态的绘制过程。 割六觚以...

人邮异步社区 3237

具身智能:原理、算法与系统 第3章 具身智能的感知-认知-行为框架

具身智能的PCB框架源于对生物智能系统的观察:动物通过感官接收环境信息(感知),基于内部模型进行预测和决策(认知),并通过身体执行动作改变环境(行为),而这一改变又通过感知反馈形成闭环。这一框架在两篇核心文献中得到了深入阐述:提出了系统的数学形式化和工程实现,则从认知科学角度强调了归纳偏置和双过程理论的重要性。

VectorShift的博客 155

Java-抽象、接口、内部类、枚举

目录1 抽象1.1抽象类的细节1.2抽象模板设计模式2 接口2.1接口2.2接口的细节2.3接口的多态2.4接口类型的数组2.5接口的多态传递2.6接口VS继承3 内部类3.1概念3.2内部类的分类3.3局部内部类3.4匿名内部类3.5成员内部类3.6静态内部类4 枚举4.1自定义枚举4.2使用关键字enum实现枚举类4.3Enum的成员方法增强for循环: abstract class 类名{ //方法(实现的,抽象方法) //属性

weixin_57208934的博客 737

从生产订单到整车交付,SAP 离散制造在汽车行业里的真实落点

汽车行业谈数字化,很容易一上来就谈智能工厂、数字孪生、AI 排产、无人仓、视觉质检。可落到 SAP 项目现场,真正把工厂撑起来的,往往还是几个很朴素的问题,客户订单来了以后,BOM 能不能准确展开,物料能不能准时到线,产能有没有被过度承诺,生产订单能不能被车间正确执行,质量问题能不能追溯,成本能不能按工单和批次沉淀下来。

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

Java基础第五章、面向对象程序设计

本文总结了java面向对象程序设计的核心知识点,欢迎一起交流~

Nelson_hehe的博客 352

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

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

《Java面向对象程序设计》学习笔记

备考某学校的 817程序设计Java 专业课,在学习耿祥义老师的《Java面向对象程序设计(第3版)-微课视频版》。 发一些自己的学习笔记到专栏(一篇文章对应书上一章),可能不会及时更新,见谅。 笔记可能有错误,看看就得,现在懒得浓缩精炼了,以后再说吧🧐

奇妙方程式的博客 9982

NTscan扫描工具

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

Java 第二部分 面向对象篇 多态 内部类 枚举类型 包与权限

第二部分 面向对象篇 多态 内部类 权限第二部分 面向对象篇前言一、多态1.什么是多态? 前言     面向对象程序设计的三大支柱是封装、继承和多态。多态意味着父类的变量可以指向子类对象。 一、多态 1.什么是多态?     一个对象在不改变自身的情况下,可以在不同的场景担任不同的身份,注意既然在不同的场景 担任不同的身份 其表现的行为是有限制的,但是这些身份之间,必须是有继承关系的! 例如:一个先生本人不变 在老婆面前,他的身份是丈夫; 在爸爸面前,他的身份是儿子; 在爷爷面前,他的身份是孙子; 在儿子

YING—country的博客 245

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

《Java面向对象程序设计》期末总结

内部类是指在一个类的内部定义的类。内部类可以访问外部类的成员(包括私有成员),而外部类则不能直接访问内部类的成员(需要通过内部类的对象来访问)。内部类的主要作用是增强类的封装性和灵活性。异常指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。异常机制其实是帮助我们找到程序中的问题。

2302_78933775的博客 679

面向对象高级程序设计基础知识回顾

综述:本章讲述Java面向对象技术的另外两个特点,多态和继承,以及由继承机制派生出来的接口技术和抽象类等概念。5.1 继承1)子类可以继承父类中权限设置为public,protected和default的成员变量和方法;但是不能继承访问权限为private类型的成员变量和方法。 2)子类对象创建的实质是在调用子类构造函数函数之前首先调用父类构造函数,默认为默认构造函数super,且通常是隐式调用;

xdyzyh的专栏 911

python之面向对象

python的面向对象

2302_79132470的博客 1980

JAVA面向对象

JAVA面向对象

理想主义的花终将盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 1176

JAVA语言面向对象程序设计

该文章包含JAVA语言基础,JAVA控制结构,方法数组,面向对象基础等知识点

2503_92042317的博客 956

【Java面向对象程序设计】——知识总结——初学者必备基础学习锦囊

Java 面向对象程序设计是一种编程范式,将程序组织成对象的集合,通过对象之间的交互实现程序的功能和逻辑,在 Java 中一切都可视为对象。这份Java面向对象程序设计学习笔记涵盖类与对象、封装、继承、多态等核心概念,结合实例剖析其原理与应用,助你掌握Java面向对象编程思维与技巧 。

Fxy200466的博客 2963

Java 面向对象细节

一、Java堆内存与栈内存 二、类与对象、类的语法格式、static修饰符、Java方法、Java变量 、访问控制符private default protected public、类的设计、包装类 、toString()、"=="和equals()、单例类(Singleton类)、final修饰符、抽象类和接口、内部类、Lambda表达式、枚举类、对象和垃圾回收...

Little_ant_的博客 1203

Java核心技术基础知识学习之面向对象(下)

Java语言基础,包括 Java 数据类型、运算符、流程控制和数组、面向对象、Java 基础类库、Java 集合、泛型、异常处理、输入输出、多线程、网络编程等

znufe_newer的博客 937

Java面向对象程序设计综合复习总结

自从冯.诺依曼的理论的提出后,计算机语言在那么多年的发展下,也经历了三个发展阶段:机器语言、汇编语言、高级语言。第一代计算机进行编程的语言就是机器语言,使用机器语言进行编程的时候,需要用到大量"0"和"1"进行编程。虽然进行编程的时候有迹可寻,但是还是避免不了大量的背诵,而且还需要程序员要会熟练与运用设备。第二代计算机的编程语言是汇编语言。汇编语言在机器语言的基础上做了一次重大的改革创新。汇编语言与机器语言的区别在于,前者使用了英文单词进行编写,大大减小了程序员开发的难度。

ssz168168的博客 1367

面向对象程序设计之一

面向对象程序设计• 结构化程序设计方法• 面向对象程序设计方法• 面向对象程序设计中的封装• 面向对象程序的设计过程分析抽象组装 • 程序=数据 +算法 • 程序设计方法 – 结构化程序设计 – 面向对象程序设计 • C语言:结构化程序设计语言 • Java语言:是一种面向对象程序设计语言 • 结构化程序设计方法 – 函数是分解出的算法零件 – 结构体类型是分解出的数据零件 – 程序修改 stru...

MP-214的博客 896
上一篇: 抽象类
下一篇: Java枚举类
惠溪崽崽
博客等级 码龄7年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值