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面向对象之多态
到此这篇关于Java 抽象类特点总结的文章就介绍到这了,更多相关Java 抽象类特点内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Java面向对象基础知识之抽象类和接口
抽象类(abstract): 抽象类不能创建实例,它只能作为父类被继承.抽象类是从多个具体类中抽象出来的父类,它具有更高层次的抽象.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为其子类的模板,从而避免了子类的随意性. (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基
-
深入理解Java设计模式之抽象工厂模式
目录 一.什么是抽象工厂模式 二.抽象工厂模式的应用场景 三.抽象工厂模式和工厂方法模式对比 四.抽象工厂模式的优缺点 五.抽象工厂模式的实现 六.总结 一.什么是抽象工厂模式 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类. 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态.抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式. 抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象. 根据里氏替换原则,任
-
Java面向对象基础知识之封装,继承,多态和抽象
目录 一.封装 二.继承 三.多态 四.抽象 总结 一.封装 封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的.增加安全性 public class Person { private String name; private int gender; private int age; public String
-
Java抽象类和接口的区别详情
1.抽象类 vs 接口 方法类型: 接口只能有抽象方法.抽象类可以有抽象和非抽象方法.从 Java 8 开始,它也可以有默认和静态方法. 最终变量: 在 Java 接口中声明的变量默认是最终的.抽象类可能包含非最终变量. 变量类型: 抽象类可以有final.non-final.静态和非静态变量.接口只有静态和最终变量. 实现: 抽象类可以提供接口的实现.接口不能提供抽象类的实现. 继承 vs 抽象: Java 接口可以使用关键字"implements"来实现,抽象类可以使用关键字&
-
java 多态与抽象类详解总结
目录 前言 多态 初识多态 什么是多态? 多态的分类 多态的必要条件 实现多态 向上转型 向下转型 instanceof运算符 具体实现 抽象类与抽象方法 为什么要使用抽象? 抽象方法 抽象类 前言 今天是2021LOL全球总决赛,一直不被大家看好的EDG冲到了决赛对战韩国队的DK,可以说EDG面对如此强大的对手,想赢是比较难的,为了给中国队打气我立下flag,如果EDG获胜那我就奖励自己学习到第二天6点,结果我就来了,,,恭喜EDG! 为了接下来接口的学习,我们先来学习多态与抽类相关的一些知识
-
深入浅析Java 抽象类和接口
目录 一.抽象类 1.抽象类 1.1抽象类的定义 1.2抽象方法的定义方式 1.3抽象类的定义方式 2.抽象类和实例类的区别 3.抽象类示例 4.抽象类的特征 二.接口 1.接口 1.1接口的定义 1.1定义一个接口 1.2 接口的使用 1.3接口的注意事项 2.接口示例 3.接口的特征 三.抽象类和接口的区别 一.抽象类 1.抽象类 1.1抽象类的定义 在Java面向对象当中,所有的对象都是用过类进行描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类没有包含足够多的信息来描述一个具体的对
-
Java 中的抽象介绍
目录 1.抽象类和抽象方法 2.何时在示例中使用抽象类和抽象方法 3.封装与数据抽象 4.抽象的优点 前言: 数据抽象是一种仅向用户显示基本细节的属性.不向用户显示琐碎或非必需的单元.例如:汽车被视为汽车而不是其单个组件. 数据抽象也可以定义为仅识别对象所需特征而忽略不相关细节的过程.对象的属性和行为将其与其他类似类型的对象区分开来,也有助于对对象进行分类/分组. 考虑一个男人开车的真实例子.男人只知道踩油门会提高车速或踩刹车会停车,但他不知道踩油门车速实际上是如何增加的,他不知道汽车的内部机制
-
java 抽象类的实例详解
java 抽象类的实例详解 前言: 什么是抽象类?这名字听着就挺抽象的,第一次听到这个名字还真有可能被唬住.但是,就像老人家所说的,一切反动派都是纸老虎,一切有着装x名字的概念也是纸老虎.好吧,我们已经从战略上做到了藐视它,现在就要战术上重视它,如同要解决纸老虎,就要一个牙齿一个牙齿地敲,一个爪子一个爪子地拔:解决这种抽象概念也一样,先要把它具体化,细分化,然后一个一个地来. 我一般遇到新的概念都会问三个问题: 1.这个东西有什么用?用来干什么的?它的意义在哪里?(显然,如果是没用的东西,就没必
-
java 抽象类与接口的区别总结
java 抽象类与接口的区别总结 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于 abstract class和interface 选择显得比较随意. 其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的 理解
-
深入浅出分析Java抽象类和接口【功能,定义,用法,区别】
本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很大的不同之处. 一.抽象类 在了解抽象类之前,先了解下抽象方法.抽象方法是一种特殊的方法:只有声明,而没有具体的实现.抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,这个类就必须在类前用abs
-
Java抽象类概念与用法实例分析
本文实例讲述了Java抽象类概念与用法.分享给大家供大家参考,具体如下: 抽象:就是对一个事物的大概描述 抽象方法:以abstract修饰的方法,这种方法只声明返回数据类型,方法名和所需参数,并没有函数体.如 abstract void study(); 抽象类特点: 1.抽象类中不一定含有抽象方法:但抽象方法一定在抽象类中. 2.抽象类不具备实际功能,只能用于派生子类 3.抽象类中可以包含构造函数,但是构造函数不能被声明成抽象.抽象类中的成员方法包括一般方法和抽象方法 4.抽象方法和抽象类都必
-
Java抽象类的构造模板模式用法示例
本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留给子类去实现. 父类中可能包含需要调用其他系列方法的方法,这些被调方法既可以由父类实现,也可以由其子类实现.父类里提供的方法只是定义了一个通用算法,其实现也许并不完全由自身实现,而必须依赖器子类的辅助. 二 实战 1 父类 public abstract class SpeedMeter { // 转速 pr
-
浅谈Java抽象类和接口的个人理解
今天来说一波自己对Java中抽象类和接口的理解,含参考内容: 一.抽象类 1.定义: public abstract class 类名{} Java语言中所有的对象都是用类来进行描述,但是并不是所有的类都是用来描述对象的.我所理解的抽象类其实就是对同一类事物公共部分的高度提取,这个公共部分包括属性和行为.比如牛.羊.猪它们的公共属性是都有毛,公共行为是都哺乳,所以我们可以把公共部分抽象成一个哺乳类,含有属性毛和行为哺乳,当牛.羊.猪继承了哺乳类后也就有了哺乳的功能,至于怎么完成这个功能就需要自己
-
JAVA抽象类和抽象方法(abstract)实例分析
本文实例讲述了JAVA抽象类和抽象方法(abstract).分享给大家供大家参考,具体如下: 一.抽象(abstract)的使用 当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. 我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化.这样,抽象类也就诞生了. 例如,定义了"动物"父类,其中&qu
-
Java抽象类和抽象方法定义与用法实例详解
本文实例讲述了Java抽象类和抽象方法定义与用法.分享给大家供大家参考,具体如下: 一.Java抽象类 参考资料:Java抽象类 详解 1.抽象类的说明 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这
-
Java抽象类原理与用法实例详解
本文实例讲述了Java抽象类原理与用法.分享给大家供大家参考,具体如下: 一.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容.而抽象类是指在普通类的结构里面增加抽象方法的组成部分. 那么什么叫抽象方法呢?在所有的普通方法上面都会有一个"{}",这个表示方法体,有方法体的方法一定可以被对象直接使用.而抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰. 而拥
-
java抽象类和接口定义与用法详解
本文实例讲述了java抽象类和接口定义与用法.分享给大家供大家参考,具体如下: 抽象类 抽象类定义 只约定类所具有的抽象行为,没有具体实现相应行为. 语法格式 abstract class 类名{ 常量; 变量; 构造(); 访问修饰符abstract 返回类型 方法名;//抽象方法 普通方法; 静态方法(); } 应用场景 1.不适合创建对象. 2.有些功能没有必要实现,有不同的子类实现. 3.每次使用的都是子类的对象. 4.为所有的子类提供了一个模板,所有的子类都是在此模板的基础之上添加和修
随机推荐
- SQL2005CLR函数扩展-繁简转换的实现代码
- 解锁redis锁的正确姿势
- angularjs定时任务的设置与清除示例
- dos 文件复制 copy命令
- js css+html实现简单的日历
- js通用滑动门类
- JavaScript实现图片轮播的方法
- JavaScript中字符串分割函数split用法实例
- php读取文件内容到数组的方法
- YII Framework的filter过滤器用法分析
- JavaScript 基础知识 被自己遗忘的
- CodeIgniter与PHP5.6的兼容问题
- 搭建pomelo 开发环境
- java中通用的线程池实例代码
- 浅析Ruby中的正则表达式的使用
- 详解Android之图片加载框架Fresco基本使用(二)
- Android横竖屏幕切换生命周期详解
- 实例解析C#设计模式编程中简单工厂模式的使用
- 详解C#编程中异常的创建和引发以及异常处理
- 站长网seo听课心得总结