Java 抽象类特点总结
作者:执久呀 时间:2023-07-28 10:39:46
一、前言
前面我们学习了多态中的转型,那么现在我们开始学习抽象类的概述和使用
二、抽象类
生活大多事物是具有抽象含义的,比如我说一个生物,你想不到我说的生物是什么,
在比如说一个动物,你也想不到我说的是什么,这种让人想不到的概念可以理解就是
抽象类。抽象用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
标签:Java,抽象类,特点
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
分别在Groovy和Java中创建并初始化映射的不同分析
2023-11-26 08:15:42
C#关键字async/await用法
2022-04-19 03:38:13
Java中方法的使用、重载与递归的详细介绍
2022-03-02 02:50:05
![](https://img.aspxhome.com/file/2023/8/60928_0s.png)
java图搜索算法之DFS与BFS详解
2022-08-15 15:48:57
![](https://img.aspxhome.com/file/2023/6/63026_0s.png)
通过实例解析Spring Ioc项目实现过程
2023-11-24 10:12:33
![](https://img.aspxhome.com/file/2023/5/59745_0s.png)
C# memcached缓存使用实例代码
2022-01-15 02:17:11
C#中委托的基础入门与实现方法
2022-05-24 22:04:24
![](https://img.aspxhome.com/file/2023/2/80072_0s.png)
C#遍历子目录的方法
2022-06-30 11:11:27
c#根据网址抓取网页截屏生成图片的示例
2021-08-31 14:29:13
Spring Data JPA中 in 条件参数的传递方式
2023-11-08 06:45:47
企业级Kubernetes管理平台Wayne功能特性介绍
2021-11-05 08:58:33
![](https://img.aspxhome.com/file/2023/4/105964_0s.png)
详谈异步log4j2中的location信息打印问题
2023-12-22 05:53:31
java返回json请求中文变成问号的问题及解决
2023-11-01 02:56:34
![](https://img.aspxhome.com/file/2023/5/129975_0s.png)
使用@Validated 和 BindingResult 遇到的坑及解决
2022-12-18 20:36:28
![](https://img.aspxhome.com/file/2023/3/64223_0s.png)
详解springboot读取yml配置的几种方式
2023-08-21 02:44:54
arthas排查jvm中CPU占用过高问题解决
2022-07-15 20:31:49
![](https://img.aspxhome.com/file/2023/7/86847_0s.png)
Java 如何优雅的抛出业务异常
2023-11-24 04:04:34
导入maven项目各个注解均报错的解决方案
2022-02-23 12:35:09
![](https://img.aspxhome.com/file/2023/0/71820_0s.jpg)
Java的Struts框架简介与环境配置教程
2023-10-29 05:23:03
![](https://img.aspxhome.com/file/2023/8/58728_0s.jpg)
c#与WMI使用技巧集第1/2页
2022-03-16 05:16:01