抽象类真的也可以被实例化(Java)
面试过程中,遇到这个问题。当时处于懵的状态,回答抽象类不能被实例化。当时觉得此事必有蹊跷,查询了一些资料了解到:
抽象类其实是可以被实例化的,但是它的实例化方式并不是通过普通的new方式来创建对象,而是通过父类的应用来指向子类的实例间接地实现父类的实例化,因为子类在实例化之前,一定会先实例化它的父类。这样创建了继承抽象类的子类对象,也就把其父类(抽象类)给实例化了。
注意:接口与抽象类非常类似,但是它不可以被实例化,因为接口压根没有构造函数。
下面将通过一个简单的Demo来展示一下:
首先,定义一个抽象类B,包含抽象方法play()
public abstract class B {private String str;public B(String a){System.out.println("父类已经实例化");this.str = a;System.out.println(str);}public abstract void play();
}
然后,定义一个子类C去继承类B,并实现其中的抽象方法
public class C extends B{public C(String c){super(c);System.out.println("子类已经被实例化");}@Overridepublic void play() {System.out.println("我实现了父类的方法");}public static void main(String[] args){B c = new C("c");}
}
运行结果如下:
父类已经实例化
c
子类已经被实例化
抽象类真的也可以被实例化(Java)相关推荐
- java class类型参数_使用Class对象实例化Java类型参数/ generic
如何实例化Java泛型对象,该对象仅接受类或参数给出的类型参数宾语? 例如: 通常,可以使用以下语法实例化Integer对象的ArrayList: ArrayList foo = new ArrayL ...
- java class实例化对象_使用Class对象实例化Java类型参数/ generic
参见英文答案 > How to set the generic type of an ArrayList at runtime in java?????????????????????????? ...
- java抽象类到底能不能够实例化?
文章目录 问题 测试 总结 问题 什么是抽象类?抽象类能不能被实例化? 测试 创建一个AbstractFruit抽象类 public abstract class AbstractFruit {pub ...
- java中不同包中怎么实例化,Java 笔试题 (01)
Java 笔试题 1.有1.2.3.4.5个数字,能组成多少个互不相同且无重复数字的四位数?都是多少? 提示:可填在千位.百位.十位.个位的数字都是1.2.3.4.5.组成所有的排列后再去 掉不满足条 ...
- java抽象类的属性_深入理解Java抽象类
基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分那一定是我讲的不够生动,记得留言提醒我. 好 ...
- 灵魂拷问:用移位来代替除法运算真的效率高吗?Java 编译器到底有没有做除法优化?
目录 引入 C++ 编译器对除法的优化 Java 编译器对除法的优化 移位运算对应的字节码 除法操作对应的字节码 查看及分析 JIT 即时编译结果 1.手动编译 OpenJDK 2.编译 hsdis- ...
- 什么是抽象类?抽象类的作用_揭秘!Java 泛型背后到底是什么?
作者:的一幕 链接:www.jianshu.com/p/dd34211f2565 这一节主要讲的内容是java中泛型的应用,通过该篇让大家更好地理解泛型,以及面试中经常说的泛型类型擦除是什么概念,今天 ...
- python 重写抽象类编译错误_从零开始的Java之旅5.0继承、super、this、抽象类
前言 昨天我们对Java的类与对象.封装.构造方法进行了充分讲解,今日我们学习继承.super.this.抽象类 今日内容: 三大特性--继承 方法重写 super关键字 this关键字 抽象类 继承 ...
- java 接口是抽象类吗_我是如何理解Java抽象类和接口的
在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像 ...
最新文章
- Linux下屏蔽Ctrl+Alt+Delete
- 通用双向链表的设计(参考Linux系统中的实现)
- COCOA的UIVIEW动画护展
- 【笔记】SFTP、ssh密钥连接远程服务器,putty工具生成密钥,详细图文教程
- 360的驱动(qutmdrv.sys)分页内存泄露
- opencv,用摄像头识别贴片元件的定位和元件的角度(转载)
- 男子网购二手苹果手表 竟收到这些东西 怒斥卖家:你这个骗子!
- 大数据分析对物联网发展有什么影响
- NOIP2016愤怒的小鸟 题解报告 【状压DP】
- 用matlab画玫瑰花,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
- 网络安全等级保护制度介绍
- 75款响应式国外漂亮网站建设中模板(上线倒计时模板)
- 国产麒麟系统为何饱受争议?
- Arduino教程4:面包板与洞洞板
- 【技术类】ArcGIS里做影像分幅裁剪
- navicate Cannot create file ... 系统找不到指定的路径”问题解决
- [2017集训队作业自选题#149]小c的岛屿
- 日历提醒软件Export Calendars Pro for Mac
- golang 实现华容道
- 只有夏令营,入营0双非,想保中科大大数据学院应该怎么做?
热门文章
- java factorial_Java Factorial Program
- 手机号发验证码实现用户注册登录
- 【wx小程序】扩展组件recycle-view的使用
- 毫米波安检“上位”,人类的安全防护又多了一种可能
- 将mv转成歌曲的方法(mp4转mp3)
- linux 开放1701端口,linux – IPSEC / LT2P的哪些端口?
- [LOJ]#572. 「LibreOJ Round #11」Misaka Network 与求和 min_25筛+杜教筛
- 剑指offer----C语言版----第四天
- 千年服务器武功修改,千年私服如何添加武功
- Python中 格式化符号的基本使用方法