包和抽象类介绍--java进阶day02
1.package包

导包第二点需要注意
a包和b包都存有Student类,c包存有测试类,我们在c中创建Student对象,系统会询问你要哪个包的Student类,并自动帮你导包

.

在导完a包的学生类后,想要再次导入b包的学生类就不能再像之前那样导了

全类名导包
通过带包名将b包重复的学生类导入

2.抽象类介绍
抽象类就是特殊的父类,内部允许编写抽象方法

什么是抽象方法?
以猫吃鱼,狗吃肉的方式进行举例讲解
我们写了一个猫类和一个狗类,两者都有吃饭的共性的成员方法,那么我们就可以抽取出这个吃饭的方法,设置在动物的父类里

但在动物的父类里面,我们发现吃饭这个方法里面的逻辑不知道该写什么了,猫吃鱼,狗吃肉,那我们究竟是写鱼呢还是写肉呢?很简单,既然写不出,我们就不写了,设计为抽象方法
抽象方法:当抽取出子类中共性的方法于父类中,父类无法描述清楚该方法的逻辑,并且这个方法在子类中必须存在(猫必须吃鱼,狗必须吃肉)时,我们就可以将该方法设计成抽象方法
3.抽象类和抽象方法的语法
在类和方法上加入abstract关键字
eat()方法已经变为抽象方法,但是抽象方法必须存在于抽象类中,所以还需要在动物类上加入abstract

.

4.子类继承抽象类,就必须将抽象类中的抽象方法描述清楚
当我们将动物类写为抽象类后,猫类和狗类继承动物类,会发现子类报错了

因为,动物吃什么,在父类中说不清楚,但是在子类中就很明确了,猫吃鱼,所以必须将抽象方法重写
抽象方法重写快捷方式:alt+回车


5.总结

.

包和抽象类介绍--java进阶day02的更多相关文章
- Java进阶(三十六)深入理解Java的接口和抽象类
Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...
- java基础—抽象类介绍
一.抽象类介绍
- Java进阶03 IO基础
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/11/3000905.html 作者:Vamei 出处:http://www.cnblogs.com ...
- Java进阶01 String类
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...
- Java进阶之网络编程
网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...
- Java进阶(四十)Java类、变量、方法修饰符讲解
Java进阶(四十)Java类.变量.方法修饰符讲解 Java类修饰符 abstract: 将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. final: 将一个类生命为最终(即非继承类) ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- Java进阶之路
Java进阶之路——从初级程序员到架构师,从小工到专家. 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序 ...
- java进阶视频分享
更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
随机推荐
- VUE3基础环境搭建
VUE3基础环境搭建 1. 安装vue.js npm install vue -g 安装webpack Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bun ...
- SpringBoot进阶教程(八十四)spring-retry
在日常的一些场景中, 很多需要进行重试的操作.而spring-retry是spring提供的一个基于spring的重试框架,某些场景需要对一些异常情况下的方法进行重试就会用到spring-retry. ...
- [Git][基本原理与命令]
引言 Git是工作中最常用的版本控制工具,本文中将介绍其常用的命令. 根据作用的不同,可以分为基本命令.撤销命令.合并命令与远程仓库命令,下面将依次介绍这些命令. 基本原理 git 中提供了底层api ...
- 使用 NodeLocalDNS 提升集群 DNS 性能和可靠性
本文主要分享如何使用 NodeLocal DNSCache 来提升集群中的 DNS 性能以及可靠性,包括部署.使用配置以及原理分析,最终通过压测表明使用后带来了高达 50% 的性能提升. 1.背景 什 ...
- vue的element,el-select与el-tree配合使用,实现下拉树状
HTML <el-select ref="stlectTree" v-model="treeSelectText" placeholder="请 ...
- Redis学习笔记之spring-data-redis
一.关于spring-data-redis spring-data-redis针对jedis提供了如下功能: 连接池自动管理,提供了一个高度封装的"RedisTemplate"类 ...
- Java基础总结,超级全的面试题-copy
1. static关键字是什么意思?Java 中是否可以覆盖(override)一个 private 或者是 static 的方法?是否可以在 static 环境中访问非static 变量? stat ...
- KeyDB-键值存储
KeyDB项目是从redis fork出来的分支.众所周知redis是一个单线程的kv内存存储系统,而KeyDB在100%兼容redis API的情况下将redis改造成多线程. 多线程架构 线程模型 ...
- 记一次 .NET某数字化协同管理系统 内存暴涨分析
一:背景 1. 讲故事 高级调试训练营里的一位朋友找到我,说他们跑在linux上的.NET程序出现了内存泄露的情况,上windbg观察发现内存都是IMAGE给吃掉了,那些image都标记了 doubl ...
- SOUI4.0发布
4.0在3.x基础上将核心对象全部COM接口化,支持C语言调用SOUI. GIT仓库: gitee: https://gitee.com/setoutsoft/soui4 github: https: ...