面试过程中,遇到这个问题。当时处于懵的状态,回答抽象类不能被实例化。当时觉得此事必有蹊跷,查询了一些资料了解到:

抽象类其实是可以被实例化的,但是它的实例化方式并不是通过普通的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)相关推荐

  1. java class类型参数_使用Class对象实例化Java类型参数/ generic

    如何实例化Java泛型对象,该对象仅接受类或参数给出的类型参数宾语? 例如: 通常,可以使用以下语法实例化Integer对象的ArrayList: ArrayList foo = new ArrayL ...

  2. java class实例化对象_使用Class对象实例化Java类型参数/ generic

    参见英文答案 > How to set the generic type of an ArrayList at runtime in java?????????????????????????? ...

  3. java抽象类到底能不能够实例化?

    文章目录 问题 测试 总结 问题 什么是抽象类?抽象类能不能被实例化? 测试 创建一个AbstractFruit抽象类 public abstract class AbstractFruit {pub ...

  4. java中不同包中怎么实例化,Java 笔试题 (01)

    Java 笔试题 1.有1.2.3.4.5个数字,能组成多少个互不相同且无重复数字的四位数?都是多少? 提示:可填在千位.百位.十位.个位的数字都是1.2.3.4.5.组成所有的排列后再去 掉不满足条 ...

  5. java抽象类的属性_深入理解Java抽象类

    基础部分内容差不多讲解完了,今天开始进入Java提高篇部分,这部分内容会比之前的内容复杂很多,希望大家做好心理准备,看不懂的部分可以多看两遍,仍不理解的部分那一定是我讲的不够生动,记得留言提醒我. 好 ...

  6. 灵魂拷问:用移位来代替除法运算真的效率高吗?Java 编译器到底有没有做除法优化?

    目录 引入 C++ 编译器对除法的优化 Java 编译器对除法的优化 移位运算对应的字节码 除法操作对应的字节码 查看及分析 JIT 即时编译结果 1.手动编译 OpenJDK 2.编译 hsdis- ...

  7. 什么是抽象类?抽象类的作用_揭秘!Java 泛型背后到底是什么?

    作者:的一幕 链接:www.jianshu.com/p/dd34211f2565 这一节主要讲的内容是java中泛型的应用,通过该篇让大家更好地理解泛型,以及面试中经常说的泛型类型擦除是什么概念,今天 ...

  8. python 重写抽象类编译错误_从零开始的Java之旅5.0继承、super、this、抽象类

    前言 昨天我们对Java的类与对象.封装.构造方法进行了充分讲解,今日我们学习继承.super.this.抽象类 今日内容: 三大特性--继承 方法重写 super关键字 this关键字 抽象类 继承 ...

  9. java 接口是抽象类吗_我是如何理解Java抽象类和接口的

    在面试中我们经常被问到:Java中抽象类和接口的区别是什么?然后,我们就大说一通抽象类可以有方法,接口不能有实际的方法啦;一个类只能继承一个抽象类,却可以继承多个接口啦,balabala一大堆,就好像 ...

最新文章

  1. Linux下屏蔽Ctrl+Alt+Delete
  2. 通用双向链表的设计(参考Linux系统中的实现)
  3. COCOA的UIVIEW动画护展
  4. 【笔记】SFTP、ssh密钥连接远程服务器,putty工具生成密钥,详细图文教程
  5. 360的驱动(qutmdrv.sys)分页内存泄露
  6. opencv,用摄像头识别贴片元件的定位和元件的角度(转载)
  7. 男子网购二手苹果手表 竟收到这些东西 怒斥卖家:你这个骗子!
  8. 大数据分析对物联网发展有什么影响
  9. NOIP2016愤怒的小鸟 题解报告 【状压DP】
  10. 用matlab画玫瑰花,网上收到的用matlab画玫瑰花的代码怎么不行啊,报告错误,求大神...
  11. 网络安全等级保护制度介绍
  12. 75款响应式国外漂亮网站建设中模板(上线倒计时模板)
  13. 国产麒麟系统为何饱受争议?
  14. Arduino教程4:面包板与洞洞板
  15. 【技术类】ArcGIS里做影像分幅裁剪
  16. navicate Cannot create file ... 系统找不到指定的路径”问题解决
  17. [2017集训队作业自选题#149]小c的岛屿
  18. 日历提醒软件Export Calendars Pro for Mac
  19. golang 实现华容道
  20. 只有夏令营,入营0双非,想保中科大大数据学院应该怎么做?

热门文章

  1. java factorial_Java Factorial Program
  2. 手机号发验证码实现用户注册登录
  3. 【wx小程序】扩展组件recycle-view的使用
  4. 毫米波安检“上位”,人类的安全防护又多了一种可能
  5. 将mv转成歌曲的方法(mp4转mp3)
  6. linux 开放1701端口,linux – IPSEC / LT2P的哪些端口?
  7. [LOJ]#572. 「LibreOJ Round #11」Misaka Network 与求和 min_25筛+杜教筛
  8. 剑指offer----C语言版----第四天
  9. 千年服务器武功修改,千年私服如何添加武功
  10. Python中 格式化符号的基本使用方法