抽象类调用自己的抽象方法,实现来自子类
public abstract class Parent {public abstract void dosomething();public void say(){dosomething();System.out.println("www.jianshu.com");}}
public class Children extends Parent{@Overridepublic void dosomething() {System.out.println("张三来啦");}public static void main(String[] args){Children c = new Children();c.say();}}
执行结果
“张三来啦”
分析:
记住:抽象方法是不能调用的,原因就是抽象方法没有方法体。
但是,在一个类中定义了一个抽象方法,在这个类 或 这个类的子类 中是可以调用的。为什么可以调用呢?因为,具有抽象方法的类,一定是一个抽象类,而抽象类在被继承的时候,必须重写这个抽象类的抽象方法,而且,抽象类不能实例化,在使用这个抽象类的时候,使用的一定是这个抽象类的子类。
故,你在 抽象类 或 抽象类的子类 中可以使用这个抽象方法,是因为当真正实例化去使用的时候,使用的是子类重写后的实例方法。
抽象类调用自己的抽象方法,实现来自子类相关推荐
- 抽象类中的非抽象方法调用自己的抽象方法
抽象类中的非抽象方法调用自己的抽象方法 当一个抽象类中的非抽象方法调用该类自己的抽象方法时,所调用的方法为子类的实现.例: //抽象父类 public abstract class AbstractC ...
- java中怎样调用抽象类中的非抽象方法?(对原文做修改,加入一点自己理解)
问: 例如:我有一个抽象类BaseStudentDAO,类中有一个非抽象方法load,我该怎样调用load这个方法? 答: 想调用BaseStudentDAO中的非抽象方法load,如果load方法是 ...
- 抽象类中调用自己的抽象方法
抽象类中调用自己的抽象方法 先看代码 public abstract class CompositionTemplate {public final String template(String ti ...
- Java 设计一个抽象类Printer和它的两个子类BlackPrinter(黑白打印机)和ColorPrinter(彩色打印机)
设计一个抽象类Printer和它的两个子类BlackPrinter(黑白打印机)和ColorPrinter(彩色打印机) 要求如下: (1) 抽象类Printer有brand(品牌)属性,一个包含一个 ...
- Java编程---(1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式。(2)定义3个类:Tank,Flighter,
题目:(1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式. (2)定义3个类:Tank,Flighter,WarShip ...
- java画板抽象类_java 中的 抽象方法 抽象类 和 接口有啥瓜葛
文章目录 什么是java中的抽象方法 抽象方法是一种特殊的方法: 它只有声明,而没有具体的实现 例如: abstract void eat(); 上面定义了一个方法 eat() ,有修饰关键词 abs ...
- 在抽象类中可以没有抽象方法_是否可以在最终课程中使用抽象方法?
在抽象类中可以没有抽象方法 这是最近在Java开发人员工作面试的电话面试中向我的一位读者提出的有趣的Java核心问题之一. 即使他知道你 无法用Java将抽象类定型为final ,他对方法的措辞感到困 ...
- (1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式。 (2)定义3个类:Tank,Fl
代码 /*第一题:(1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move()这两个方法分别表示武器的攻击方式和移动方式.(2)定义3个类:Tank,Flighter,War ...
- 接口和抽象类的区别是什么?抽象类必须要有抽象方法吗?抽象类能使用 final 修饰吗?
接口和抽象类的区别是什么? •接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法. •接口中的实例变量默认是 final ...
最新文章
- Matlab图形用户界面编程初级入门
- 科大星云诗社动态20210417
- 【Netty】TCP粘包和拆包
- 什么是命名空间 为什么C++需要使用命名空间
- C/C++开发者必不可少的15款编译器+IDE
- python安装虚拟环境出现错误_virtualenv 安装虚拟环境问题 请大神指点一二
- 如何学好Spring
- Swoole 2019 :化繁为简、破茧成蝶
- GCN pytorch实现 笔记
- 【hive】hive(hive cli)中显示列名,不带表名
- mysql基础之数据库备份和恢复的基础知识
- A2DP AVRCP,蓝牙音频协议的兄弟组合(1)
- iPad服务器怎样修复,如何修复iphone、ipad的Netflix错误11800
- java给pdf加水印_java pdf添加水印
- Android系统裁剪 apk
- 关于使用Python——写模拟手机通讯录查询系统
- Redis - 几款可视化工具
- 计算机通电后自动断电,电脑自动断电,教您电脑开机自动断电怎么解决
- 2020科目一考试口诀_2021驾考科目一技巧口诀
- 如何把token存储到本地和headers中
热门文章
- Hadoop Yarn内存使用优化配置
- 正则表达式 2. 单字符或
- 4 项目开发 - 后台
- JS中this关键字
- iOS开发 贝塞尔曲线UIBezierPath(后记)
- 创客运动引发第三次工业革命
- cookie中文乱码
- Jacobi迭代法与Gauss-Seidel迭代法
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL,spring获取context
- 【Python】判断列表中是否存在一个数