Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8773653
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T18:21:18+00:00 2026-06-13T18:21:18+00:00

I have been trying for some time to determine why the Object class has

  • 0

I have been trying for some time to determine why the Object class has a public, parameterless constructor or, indeed, why it is not marked abstract.

I cannot see a reasonable circumstance where it would be necessary to (explicitly) call the public constructor of Object; we are only ever interested in the constructors of derived types.

I understand the need to provide a default constructor in Object, to give every other Type a default constructor that it can call, either implicitly or explicitly. Surely, though, this default constructor would only need to be marked as protected, wouldn’t it?

I’ve seen people construct ’empty objects’ in thread synchronisation; but isn’t it more correct to lock a ‘real object’ in this scenario?

Likewise, since the functionality exposed by the Object class is only useful to derived types (or called statically), why isn’t it an abstract class? This would seem like a better design than to have a class which gives programmers the impression that it can be meaningfully instantiated on its own.

I suspect the answer may have something to do with the inner workings of the CLR, but I would like to know why it’s necessary for Object to have a public constructor, and if there is any reason why it couldn’t be marked abstract.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T18:21:19+00:00Added an answer on June 13, 2026 at 6:21 pm

    It is indeed probably to do with thread synchronization. See http://msdn.microsoft.com/en-us/library/ms173179.aspx

    The fact that Microsoft uses

    private System.Object lockThis = new System.Object();
    

    In their own example tells me that in their opinion, it is perfectly correct to make a new object solely for the purpose of synchronization.

    Also, Java allows the exact same thing in their synchronization examples, so Microsoft’s developers might have just “followed suit” with what seemed like the standard way to have the language behave.

    It is of course also possible that there is some secret technical reason in the CLR as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have been trying this for some time but could not figure out yet.
I have been trying for some time to create a class/series of classes that,
I have been trying to figure this out for some time. It seems lots
I have been trying to compile netcat.c on AIX for some time (using the
Hi i have been trying this for some time now no result yet. i
I have been Trying to figure this out for some time now. I have
I have been trying to get this to work for some time. I'm just
I have been trying for some time now to get my Rails development environment
I have been trying to work with NIO SocketChannels for some time now, and
I have a question that I've been trying to answer for some time now

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.