JAVA中的包,抽象类

news/2024/12/18 23:04:01/文章来源:https://www.cnblogs.com/mhmh007/p/18616029
什么是包
java中的package就是一个类库单元,包内含有一组类,它们在单一的名称空间之下被组织在了一起,这个名称空间就是包名
src
dao------>数据库相关的
model------>>实体内容
service----->业务
util-------->工具

包的作用
1.把功能相似或相关的类或接口组织在一个包中,方便类的查找和使用
2.如同文件夹一样,包也采树形目录的存储方式,同一个包中不能有两个同名的类,不同的包可以存放同名的类
3.包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类

包的声明
package pkg1[pkg2[pkg3]]

包的引用
包的使用其实就是在一个java类中使用其他包中的java类
import pkg1[.pkg2[.pkg3]].<classname>|*;
pkg1,pkg2,pkg3为文件系统中的文件夹名称,并存在上下级目录关系
classname代表所要引入的指定的类
*代表引入此包下所有的类


抽象类
在面向对象的领域一切都是对象,同时所有的对象都是通过类描述的,但是并不是所有的类都只是来描述对象的,如果一个类没有足够的信息
来描述一个具体的对象,而需要其他具体的类在支撑补充它,那么这样的类我们称它为抽象类
比如new Animal(); 动物对象但这个Animal什么样并不清楚,没有一个具体的动物概念,所以它就是一个抽象类

定义
使用abstract 来定义一个抽象类;同样也可以定义抽象方法(没有方法体)

如何使用
1.抽象类必须通过其子类才能实例化成对象
2.子类继承父类后重写抽象方法(具体)或 如果不能重写的话定义子类也为抽象类

抽象类的注意事项
1.含有抽象方法的类是抽象类
2.抽象类不一定有抽象方法
3.抽象类不能直接创建对象,必须通过子类实现,所以abstract不能和final一起修饰类
(因为final不可以被继承,abstract必须被继承)
4.abstract不能与static,final并列修饰同一个方法

  Animal类
package model;//抽象类
public abstract class Animal {private String name;//抽象方法,没有方法体public abstract void cry();
}

Dog与Cat类

package model;public class Dog extends Animal {//子类重写父类的方法
    @Overridepublic void cry() {System.out.println("dog 汪汪汪.........");}
}
package model;public class Cat extends Animal {@Overridepublic void cry() {System.out.println("cat 喵喵喵........");}
}

Test类(测试代码)

package test;
import model.Animal;
import model.Cat;
import model.Dog;
public class Test02 {public static void main(String[] args) {//通过子类实例化对象//多态Animal dog = new Dog();Animal cat = new Cat();dog.cry();cat.cry();}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/855078.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爱米导航网(imi),您的互联网书签搭子

爱米导航(Imi)网是一个综合性的互联网资源聚合平台,它以其丰富的内容和便捷的服务受到了广大用户的喜爱。该网站收录了数千个不同类型的互联网工具网站,覆盖了AI工具、自媒体运营工具、产品经理工具以及UI设计师工具等多个领域,为用户提供了一个一站式的解决方案。 爱米导…

记录一次springboot启动流程不完整版

1.Sort ApplicationInitializer:2.sort Listener:3.getRunListener:4.eventPublishingRunListener.starting 发布启动中事件; 构建 ApplicationArguments 参数, 4.1prepareEnvement: [StubPropertySource {name=servletConfigInitParams}, StubPropertySource {name=servletC…

键盘连击软件解决方案

解决的问题 jjjjjjjjjjjjjjjj键盘连击了,windows系统中的“筛选键”功能就能短暂解决这个问题,可是筛选的时间太长无法在面板设置更短的时间,但可以使用软件解决。 方法一 系统 筛选键 win+i 打开设置 -> 搜索“筛选键” -> 打开筛选键开关 使用限制:重复键最低只能设…

【建议收藏】最新版IDEA2024.3及 AI Assistant 一键激活到2099

成功永久激活 一、支持的IDE和版本支持JB家族所有IDE激活 支持版本为2021.3~2024.1二、如何破解激活 第一步:激活工具下载 为了防止破解工具被删除,通过公众号回复“「永久激活」”获取下载最新工具(如过期,请记得提醒我哦) 关注公众号后台回复“「永久激活」”,获取最新…

《平衡树》读后感

第一框,世界属于fhq-treap 是什么? 你说的对,但是《fhq-treap》是由范浩强自主研发的一款全新树形数据结构。数据结构发生在一个被称作「二叉搜索树」的幻想世界,在这里,被人创造的节点将被授予「随机优先级」,导引期望 \(O(\log n)\) 之力。treap 将扮演一位名为「根据优…

虚拟机unraid系统安装

首先下载unraid文件https://unraid.net/getting-started windows系统使用vmware虚拟机 创建虚拟机过程中注意usb的不同协议 2.0 3.0 由于unraid系统只能识别fat32协议的文件系统,因此需要将u盘格式化 可以使用easeus 或者 傲梅 https://www.easeus.com/partition-manager/ htt…

基于.NET WinForm开发的一款硬件及协议通讯工具

前言 今天大姚给大家分享一款基于.NET WinForm开发的一款硬件及协议通讯工具:PLC-CommunTools。 项目介绍 PLC-CommunTools是一款基于.NET WinForm开发的一款硬件及协议通讯工具,包含各类厂商的PLC协议及基础的TCP、串口通讯、IO口通讯等协议通讯功能的实现整合,注意还有一部…

游戏过程

根据是否结束游戏的逻辑选择对掷骰子的过程用bool申明变量掷骰子 static bool RollDice (w,h,ref Player p1,ref Player p2,Map map) {InfoClear(h);Console.ForegroundColor=p1.type==E_PlayerType.Player?ConsoleColor.Cyan:ConsoleColor.Meganta;if(p1.isPause){p1.isPause…

6.Group组件

关于Group组件的简单介绍首先,Group组件本身并不是一个“布局”类的组件,它只是一个容器,没有提供调整内部组件展示位置的方法,也就是说,当我们将多个组件(比如button)放在group中时,他们(根据流式规则?)会全部挤在窗口的左上角,当然,如果我们没有设置组件的大小的话…

直播预告:OpenAI 开始拥抱 RTC!为什么 LLM+RTC 才是多模态 AI 的未来?丨RTE Dev Talk

如果您正在开发具备语音对话、视觉理解等多模态能力的 AI Agent,请加入我们的直播讨论!OpenAI 今日发布了 OpenAI Realtime API 的重大更新,其中包括价格下调、新增模型以及一项尤为重要的改进: WebRTC 支持 。结合此前 WebRTC 创建者加入 OpenAI 的消息,这清晰地表明 Ope…

实验6 模板类、文件I/O与异常处理

实验四 vector.hpp#pragma once#include<iostream>#include<stdexcept>using namespace std;template<typename T>class Vector {private:int size;T* ptr;public:Vector(int size, int value = 0) :size{ size } {if (size < 0) {throw length_error(&qu…

把半年前完全没思路的题解了的感觉真好

虽然处理了很多次索引思路,不过最后还是过了。第一眼就有解题思路,这种感觉真不错,要的就是这种打怪升级的正反馈。 附上解题代码 `# @lc app=leetcode.cn id=2266 lang=python3[2266] 统计打字方案数@lc code=start from collections import Counter from functools import…