亚信科技线上笔试

本文探讨了Java中抽象类和接口的特性,包括抽象类不能被实例化,构造方法仅用于初始化对象,接口中的变量是常量,以及接口可以继承其他接口等概念。通过示例代码解释了类继承和接口实现的过程。
摘要由CSDN通过智能技术生成

记录一下不会的吧。。。。。。。。。。

1抽象类能被实例化吗?

考察点:java在创建子类对象时,会不会创建父类对象

创建子类对象时不会创建父类对象。所以抽象类是不会被实例化的,因为根本就没有父类对象被创建出来,虽然确实执行了父类的构造方法,但执行了构造方法就会创建父类对象吗,那你错了,构造方法只是初始化对象用的,此时父类构造方法初始化的是子类对象,真正的父类对象并没有被创建,因为内存中并不存在父类对象,否则java的内存管理早就爆了,满内存都是java的object对象!!!!!!!

我们创建子类对象时,只是说创建了父类空间,并进行了初始化。如果说创建子类的时候就会创建它的父类,那内存空间中不都是Object类的对象吗?(想想java的设计师也不会这么做的)

  • 创建对象指的是在堆区开辟空间
  • 编译器在运行子类构造器之前,必须先执行父类构造器;且调用父类构造器的语句必须在子类构造器的第一行。
  • 构造方法的作用是为堆区中的对象的属性初始化,不是创建对象。

下面将通过一个简单的Demo来展示一下:

首先,定义一个抽象类B,包含抽象方法play()

public abstract class B {
    private String str;
    
    public B(String a){

  • 6
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值