Java Web快速开发(2~4)Java 基本程序结构、类、继承和接口

2023-11-03

二、Java基本程序结构

1、数据类型

2、运算符

3、循环语句

三、类

四、继承和接口

1、多态

2、抽象类

通常作为类的顶层,不能实例化,可以有抽象方法,也可以有实际方法。抽象方法必须存在于抽象类中

3、接口定义

    Java 中使用interface 关键字来定义一个接口,在Java 8 之前,接口中只定义方法而没有实现,其具体的方法需要在实现该接口的类中完成。Java 8 对接口进行了增强,接口中可以实现一些特定的方法。接口中的方法默认public 属性方法不能定义为static 类型(Java 8 中可以定义静态方法,但必须在接口中实现)。接口也可以定义域的成员,通常情况下,域成员作为常量被使用。接口的域成员默认为public static final 形式。
    接口不能用new 进行实例化,但可以声明接口变量,并将接口的类赋值于该变量,一个类要实现某个接口,需要使用implements 关键字,需要实现多个接口时,接口名字间用“,”隔开即可。

public interface Song {
    public String sound();
}
public class Cat implements Song{
    public String sound(){
        return "miao miao miao";
    }
}
public class Dog implements Song {
    public String sound() {
        return "wang wang wang...";
    }
}

测试接口:

import java.util.ArrayList;
import java.util.List;

public class AnimalSong {
    public static void main(String[] args) {
        List<Song>animalList=new ArrayList<Song>();
        animalList.add(new Cat());
        animalList.add(new Dog());
        for (Song animal:animalList){
            System.out.println(animal.sound());
        }
    }
}

输出:

miao miao miao
wang wang wang...

4、接口增强

Java 8 对接口的功能进行了增强,接口中可以有静态方法和缺省方法,缺省方法为在方法名前加上default 关键字,再对其进行实现。

public interface ITestInterface {
    public static void hello() {
        System.out.println("hello world!");
    }

    default public void sayHello(String name) {
        System.out.println("hello" + name);
    }

    public void hi(String name);
}
public class TestInterfaceImpl implements ITestInterface {
    public void hi(String name) {
        ITestInterface.hello();
        this.sayHello("tom");
    }

    public void sayHello(String name) {
        System.out.println("hi" + name);
    }

    public static void main(String[] args) {
        TestInterfaceImpl s = new TestInterfaceImpl();
        s.sayHello("111");
    }
}

输出:(调用类中sayHello 函数,如果类中没有sayHello 函数就调用接口中sayHello 函数)

hi111

5、clone(实现的只是浅拷贝)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Web快速开发(2~4)Java 基本程序结构、类、继承和接口 的相关文章

  • 使用 JDBC 获取 Oracle 11g 的最后插入 ID

    我是使用 Oracle 的新手 所以我将放弃之前已经回答过的内容这个问题 https stackoverflow com questions 3131064 get id of last inserted record in oracle
  • Java 7 默认语言环境

    我刚刚安装了 jre7 我很惊讶地发现我的默认区域设置现在是 en US 对于jre6 它是de CH 与jre7有什么不同 默认区域设置不再是操作系统之一吗 顺便说一句 我使用的是Windows7 谢谢你的回答 编辑 我已经看到了语言环境
  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • 如何强制jar使用(或jar运行的jvm)utf-8而不是系统的默认编码

    我的Windows默认编码是GBK 而我的Eclipse完全是utf 8编码 因此 在我的 Eclipse 中运行良好的应用程序崩溃了 因为导出为 jar 文件时这些单词变得不可读 我必须在 bat 文件中写入以下行才能运行该应用程序 st
  • Reactive Spring 不支持 HttpServletRequest 作为 REST 端点中的参数?

    我创建了一个 RestController 如下所示 RestController public class GreetingController RequestMapping value greetings method RequestM
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • Java、Spring:使用 Mockito 测试 DAO 的 DataAccessException

    我正在尝试增加测试覆盖率 所以我想知道 您将如何测试 DAO 中抛出的 DataAccessExceptions 例如在一个简单的 findAll 方法中 该方法仅返回数据源中的所有数据 就我而言 我使用 Spring JdbcTempla
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • 如何从 Ant 启动聚合 jetty-server JAR?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 无需登录即可直接从 Alfresco 访问文件/内容

    我的场景是这样的 我有一个使用 ALFRESCO CMS 来显示文件或图像的 Web 应用程序 我正在做的是在 Java servlet 中使用用户名和密码登录 alfresco 并且我可以获得该登录的票证 但我无法使用该票证直接从浏览器访
  • 禁用 Android 菜单组

    我尝试使用以下代码禁用菜单组 但它不起作用 菜单项仍然启用 你能告诉我出了什么问题吗 资源 菜单 menu xml menu menu
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • 使用 Java https 上传到 Imgur v3 错误

    我目前正在尝试使用他们当前的 API v3 上传到 imgur 但是我不断收到错误 错误 javax net ssl SSLException 证书中的主机名不匹配 api imgur com imgur com OR imgur com
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 基于 Spring Boot 的测试中的上下文层次结构

    我的 Spring Boot 应用程序是这样启动的 new SpringApplicationBuilder sources ParentCtxConfig class child ChildFirstCtxConfig class sib

随机推荐

  • cocos compile命令指定Android项目目录

    cocos2d x 3 5 创建项目 会自动添加几个平台的目录 例如 proj android proj ios 编译时执行命令 cocos compile p android s my project m debug 编译命令指定平台为
  • vue实现登录界面

    使用Vue实现简单的用户登录界面 登录成功以后查询账号用户类型进行相应的页面路由跳转 效果如下图所示 HTML部分
  • 如何让Vscode的鼠标滚轮滑动加上ctrl键可以调整字体大小?什么是setting.json?

    打开Vscode 按照以下步骤操作 文件 gt 首选项 gt 设置 gt 文本编辑器 gt 字体 gt 进入setting json中编辑 在setting json中加入代码 editor mouseWheelZoom true 如果你把
  • 计算机网络基础(十四)---传输层-UDP协议详解

    文章内容概览 UDP协议简介 UDP User Datagram Protocol 用户数据报协议 UDP相对于TCP来说 是一个非常简单的协议 数据报 指的就是应用层所传输过来的一个完整的数据 UDP不会对这个完整的数据进行处理 不会进行
  • 图生图—AI图片生成Stable Diffusion参数及使用方式详细介绍

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 Python从零开始进行AIGC大模型训练与推理 系列文章 地址为 https blog csdn net suiyingy article details 130169592 Stab
  • Xshell和Xftp的安装与使用教程

    软件安装环境 windows7 64 下载最新软件官方地址 http www netsarang com download main html 一 下载步骤 1 点击相应要下载软件的链接 2 点击下面链接中的任意一个 3 如图 4 查收对方
  • VirtualBox Pwn x64 ubuntu 22.04

    链接 https pan baidu com s 1zab8YHwnULmEXjYaD ERfw pwd 9999 提取码 9999
  • 计算机程序的构造和解释习题3.33

    计算机程序的构造和解释习题3 33 SICP Exercise 3 33 This is similar as the celsius fahrenheit converter procedure plain view plaincopy
  • 解决u盘中病毒后如何文件被隐藏的问题

    优盘往实验室的打印机电脑上查了一插 结果就中了病毒 原来优盘里面的文件全部不可见 一开始我以为只是隐藏了 所以我就打开优盘以后更改设置 显示隐藏文件和隐藏文件夹 结果仍然不可见 也试过了网上的写脚本 无果 后来突然灵机一动 找到了解决方法
  • sklearn函数汇总

    Python笔记 sklearn函数汇总 Summer Memories 关注他 28 人 赞同了该文章 1 拆分数据集为训练集和测试集 from sklearn model selection import train test spli
  • Python自动化测试框架有哪些?

    常用的Python自动化测试框架有Robot Framework Pytest UnitTest PyUnit Behave Lettuce 软件测试的自动化在预设条件下运行系统或应用程序 评估运行结果 预先条件应包括正常条件和异常条件 自
  • gpu cpu 共享内存 提高传输速度_AMD扩展Infinity Fabric总线技术 CPU与GPU之间终于共享内存了...

    在AMD的锐龙处理器架构中 Infinity Fabric 以下简称IF 总线是个核心技术 有了它才可以让众多CCX模块互联互通 之前IF总线主要用于CPU核心之间连接 现在AMD终于开始用于EPYC CPU与Radeon显卡了 在OGHP
  • windows进程间通信

    摘 要 随着人们对应用程序的要求越来越高 单进程应用在许多场合已不能满足人们的要求 编写多进程 多线程程序成为现代程序设计的一个重要特点 在多进程程序设计中 进程间的通信是不可避免的 Microsoft Win32 API提供了多种进程间通
  • 引发的异常:“System.BadImageFormatException”(位于 halcondotnet.dll 中)

    System BadImageFormatException 类型的未经处理的异常在 halcondotnet dll 中发生 问题描述 解决办法 问题描述 报错信息如下 System BadImageFormatException 试图加
  • 一篇专题让你秒懂GCD死锁问题!

    一篇专题让你秒懂GCD死锁问题 阐述 1 什么是GCD GCD 全称 Grand Central Dispatch 可翻译为 牛逼的中枢调度器 它是纯C语言的 提供了非常多强大的函数 Grand是宏伟的 极重要的意思 GCD是提供了功能强大
  • 一个VSCode便可以免费画ER图

    为了找到一款好用的er图工具 我基本上把能用的途径都看了个遍 最后 好家伙不是收费就是要下载各式各样 大小不一的软件 下也就算了 还要收费 不收费就限制节点啊什么的 反正搞得是那个上火啊 为了帮助大家闭坑 特意写此博客 其实VScode就可
  • Buffer类的详解(转)

    这篇蚊帐转自 http zachary guo iteye com blog 1457542 作者写的非常好 是我看到的写nio最好的几篇蚊帐 但原文中有一些错误 还有我自己对这方面的一些理解 在这里一并更改了 Buffer 类是 java
  • 2023年交通与智慧城市国际会议(ICoTSC 2023)

    2023年交通与智慧城市国际会议 ICoTSC 2023 重要信息 会议网址 www icotsc org 会议时间 2023年7月28 30日 召开地点 长沙 截稿时间 2023年6月15日 录用通知 投稿后2周内 收录检索 EI Sco
  • ERROR: Failed building wheel for mayavi

    conda虚拟环境中安装mayavi 提示错误 Numpy is required to build Mayavi correctly please install it first ERROR Failed building wheel
  • Java Web快速开发(2~4)Java 基本程序结构、类、继承和接口

    文章目录 二 Java基本程序结构 1 数据类型 2 运算符 3 循环语句 三 类 四 继承和接口 1 多态 2 抽象类 3 接口定义 4 接口增强 5 clone 实现的只是浅拷贝 二 Java基本程序结构 1 数据类型 2 运算符 3