哪些类有默认构造函数?

时间:2016-02-03 18:23:49

标签: java constructor default-constructor

这些类中哪一个有默认构造函数?我只是想着A,但我错了吗?

class A {}
class B {B() {}}
class C {C(int j) {}}

2 个答案:

答案 0 :(得分:2)

你是对的。根据定义,默认构造函数是在未定义构造函数时创建的。由于 public void Delete(DBS.BankAccount entity) { try { if (_nahidContext.Entry(entity).State == System.Data.Entity.EntityState.Detached) { _nahidContext.BankAccounts.Attach(entity); } _nahidContext.Entry(entity).State = System.Data.Entity.EntityState.Deleted; //or //_nahidContext.BankAccounts.Remove(entity); _nahidContext.SaveChanges(); } catch (Exception ex) { throw new ArgumentException(ex.Message); } } 没有定义构造函数,因此将为其创建一个默认构造函数。

从技术上讲,你可以说A有一个默认构造函数,因为如果没有定义,那么无参数构造函数就会被创建。

参考:http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.8.9

答案 1 :(得分:0)

正。

A有一个默认构造函数,因为你没有为类提供任何构造函数。因此,编译器自动提供无参数的默认构造函数。此默认构造函数将调用超类的无参数构造函数(在本例中为Object类)。第二个类,类B,提供了一个无参数的构造函数,但它不是默认的,因为编译器没有为您提供它。