实例化类和实例化对象java中构造函数有什么⽤_构造函数在java中的作⽤是什么本问题已经有最佳答案,请猛点这⾥访问。
我们知道Java中的新Stand()⼦类,第⼀个递归调⽤将是⽗类构造函数,如果⽗类是抽象类,将调⽤它的构造函数。如果这是真的,意味着⽗类将被实例化?但是抽象类不能被实例化,谁能解释这个问题。谢谢您。
"但是抽象类不能被实例化"是您的答案。不能直接实例化abstract类。如果类从abstract类扩展,则调⽤⼦类的构造函数,然后调⽤abstract⽗类,具体取决于进⾏了什么超级调⽤…
@MadProgrammer:⽗级的构造函数总是被调⽤的,对吧?
@奥利查尔斯沃思:是的。If this constructor is for a class other than Object, then this constructor will begin with an explicit or implicit invocation of a superclass constructor。
@据我所知,"默认"构造函数是⾃动调⽤的,除⾮您显式地调⽤super(...)构造函数
您必须理解,构造函数不负责创建实例,⽽只负责初始化实例。创建实例是new关键字的⾓⾊(这甚⾄返回新创建的实例的引⽤,因为它没有返回类型,所以构造函数不能这样做)。因此,即使在调⽤超类的构造函数(可以是抽象的)时,也不会创建该超类的实例,⽽是执⾏代码来初始化从该超类继承的字段。
抽象类构造函数实际上是被⼦类继承的,因为当⼦类构造函数必须调⽤⽗类构造函数时,调⽤的构造函数相当于initialize⽅法,所以当⼦类抽象类中的对象根据需要初始化字段并执⾏⼀些ini时,可以⽣成t初始化代码。实际上,在调⽤构造函数之前不⼀定要创建类的实例,⼦类也需要调⽤⽗类的构造函数。它不⼀定⽣成⼀个实例构造函数,在某些特殊或特殊情况下的实现中,不调⽤创建实例构造函数。构造函数调⽤不⼀定⽣成实例,但它必须是调⽤的实例,就像普通的实例⽅法⼀样。
StackOverflow中的答案应为英语。
⽆论⽗类是具体类还是抽象类,都始终调⽤⽗类构造函数。实例化类不同于将其定义携带到⼦类。在实例化⼦类的情况下,虽然在⼦类对象中携带了⽗类的结构和⽅法,但它绝不意味着⽗类的实例化。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论