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


猜你喜欢
- private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAd
- 测试类中的问题和解决思路问题在测试类中,每个测试方法都有以下两行代码:ApplicationContext ac = new ClassPa
- 目录说明使用常见问题No such instance field: 'logger2'说明logback作为log4j的替代
- 1.相关概念Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性。建
- Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占
- 背景公司的一个服务需要做类似于分片的逻辑,一开始服务基于传统部署方式通过本地配置文件配置的方式就可以指定该机器服务的分片内容如:0,1,2,
- public static string GetMD5(string sDataIn) &nb
- springmvc 使用map接收参数开发过程中有时候我们并不知道前端都会传递哪些参数给到后端. 为方便扩展接口功能, 在请求参数不改变的情
- 1.登录腾讯云点击登录选择浏览器登录。输入用户名 按回车键 然后输入 密码。2.安装java环境直接命令:yum -y install ja
- 在Android平台上面,应用程序OOM异常永远都是值得关注的问题。通常这一块也是程序这中的重点之一。这下我就如何解决OOM作一点简单的介绍
- TimeSpan 结构 表示一个时间间隔。命名空间:System 程序集:mscorlib(在 mscorlib.dll 中)说
- spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的
- 相信你也遇到过这种场景,判断二级目录属于哪个一级目录,一个员工属于哪个上级员工领导…当Mybatis遇上目录树,有哪些解决方法?一般来说,有
- 这篇文章主要介绍了Java并发CopyOnWrite容器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 前言随着敏捷开发的流行,编写单元测试已经成为业界共识。但如何来衡量单元测试的质量呢?有些管理者片面追求单元测试的数量,导致底下的开发人员投机
- 今天碰到一个很坑的问题,折腾了五六个小时,网上也收不到答案,国外有哥们碰到了,但是看到有解决方法的回复,废话不多说了。现象:运行maven
- 尽管我们通常认为通过JAVA的反射机制来访问其它类的私有字段和私有方法是可行的,其实并没有那么困难。 注释:只有在单独的JAVA程序中运行该
- 写了一个可以扫描附近蓝牙设备的小Demo,可以查看蓝牙设备的设备名和Mac地址代码量不多,很容易看懂/** * 作者:叶应是叶 * 时间:2
- 应用启动数据初始化接口CommandLineRunner和Application详解在SpringBoot项目中创建组件类实现Command
- 1)在我们的项目中添加引用文件:TaskSchedulerEngine.dll(dll定义了一个ITask接口,定义了两个方法Initial