Java 抽象类特点总结
作者:执久呀 发布时间:2023-07-28 10:39:46
标签:Java,抽象类,特点
一、前言
前面我们学习了多态中的转型,那么现在我们开始学习抽象类的概述和使用
二、抽象类
生活大多事物是具有抽象含义的,比如我说一个生物,你想不到我说的生物是什么,
在比如说一个动物,你也想不到我说的是什么,这种让人想不到的概念可以理解就是
抽象类。抽象用abstract修饰
三、抽象方法
对于一个没有方法体的方法叫做抽象方法,抽象方法是抽象类的核心。抽象类中可以么有
抽象abstract修饰。
四、抽象类的特点
🗡①抽象类中可以有常量,还可以有变量。
🗡②抽象类中可以有/没有抽象方法,也可以有非抽象方法。
🗡③有抽象方法一点是抽象类,是抽象类不一定有抽象方法。
🗡④抽象类不能直接实例化,但可以通过多态的方式实例化。
🗡⑤子类继承抽象方法时,必须重写父类中的所有抽象方法。
注意:若子类不想重写抽象父类中的父类方法,则可以将子类也定义为抽象类,但是
该子类被其他类继承时,其他类除了重写子类中的抽象方法,还要重写父类中的抽象
方法。(此子类父类时没把其他类带入的,而是单纯的写如题)
在Service包下
package service;
public abstract class Animal1 {
public abstract void eat();
public abstract void show();
}
在service下的impl包下
package service.impl;
import service.Animal1;
public class Dog extends Animal1 {
@Override
public void eat() {
System.out.println("🐕吃🐟");
}
@Override
public void show() {
System.out.println("🐕会看门");
}
public void say(){
System.out.println("🐕会吠叫");
}
}
在controller包下
package controller;
import service.Animal1;
import service.impl.Dog;
public class AnimalController1 {
public static void main(String[] args) {
Animal1 a1=new Dog();//向上转型
if(a1 instanceof Dog){
Dog g=(Dog)a1;//向下转型
g.eat();
g.say();
g.show();
}
}
}
创建不同包的作用我前面在这Java面向对象之多态
来源:https://blog.csdn.net/weixin_60719453/article/details/120985441
0
投稿
猜你喜欢
- java缓冲流本身不具IO功能,只是在别的流上加上缓冲提高效率,像是为别的流装上一种包装。当对文件或其他目标频繁读写或操作效率低,效能差。这
- [LeetCode] 159. Longest Substring with At Most Two Distinct Characters
- 本文实例为大家分享了java文件上传下载的具体代码,供大家参考,具体内容如下文件上传@RequestMapping(value="
- web.xml中设置:<servlet> <servlet-name>DisplayChart</servle
- 前言在java Thread类中,我们会看到interrupt()、interrupted()及isInterrupted(),在大多数情况
- 1 原码、反码、补码原码:将十进制转化为二进制即原码;反码:正数的反码与原码相同,负数的反码(除却最高位的符号位不变)与原码相反
- 这篇文章主要介绍了Spring boot2X负载均衡和反向代理实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 本节了解一下 SpringBoot 中 Web 开发的静态资源导入和首页设置,对应 SpringBoot-03-Web 项目。1. 静态资源
- 使用SwingWorker线程模式谨慎地使用并发机制对Swing开发人员来说非常重要。一个好的Swing程序使用并发机制来创建不会失去响应的
- 出现问题描述: 1.Could not get a resource from the pool, Connection refused:
- 一般数据库的编码是utf8,utf8是不支持存储表情符的,当存入的微信昵称带有表情符时就会出现乱码情况,有两种解决方法:1.mysql数据库
- 前言当用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用
- 应用场景有些时候项目中会用到很多路径,并且很可能多个路径在同一个根目录下,那为了方便配置的修改,达到只修改根目录即可达到一改全改的效果,此时
- 直接用javaw.exe想打开aspectj-1.9.4.jar安装aspectJ选Java™ Platform SE binary提示JV
- 什么是JMMJMM全称Java Memory Model, 中文翻译Java内存模型,一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问
- 前言二进制文件读写两个重要的函数 , fread 和 fwrite , fread 用于读取文件 , fwrite 用于写出文件 ;frea
- spring注入枚举类型作为参数//定义枚举类型public enum ReportType { MONTH,WE
- currentThread的详解currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用。
- 这篇文章主要介绍了简单了解Java多态向上转型相关原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 为什么Android要申请权限简单说下在Android6.0及6.0以上一些google认为涉及“危险和用户隐私”的一些权限不仅要做清单文件