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

  • Home
  • SEARCH
  • 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 401909
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T17:04:36+00:00 2026-05-12T17:04:36+00:00

I am befuddled why this is allowed public class Foo { class Bar extends

  • 0

I am befuddled why this is allowed

public class Foo {
    class Bar extends Foo {
    }
}

Yet this is not allowed

public class Foo {
    class Bar extends Foo {
    }

    class Fooey extends Bar {
    }
}

The compiler informed that it can not reference Fooey.this before supertype constructor has been called.

And this is allowed

public class Foo {
    static class Bar extends Foo {
    }

    class Fooey extends Bar {
    }
}

What is going on here? And where can I go to find more information on how inner class inheritance works?

EDIT I came upon both rather poor ideas; inner class extends outer class and inner class extends other static inner class. I wasn’t sure what exactly was going and how I should refactor this. I ended up just yanking out the inner classes and encapsulating them in the outer class.

  • 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-05-12T17:04:37+00:00Added an answer on May 12, 2026 at 5:04 pm

    First of all: Don’t do this sort of thing. It’s evil. Really, Java 1.1 should have been specified very much more restrictively, IMO.

    There is confusion about which this to use from the Foo.Fooey constructor. The outer this (Foo.this) would work. But the actual this is a Foo but it can’t be passed to the superconstructor because of rules about using this before the superconstructor returns (and besides having an outer instance the same instance as the inner instance is fecked up). The outer this on the superclass “((Bar)this).this$0” (IIRC), is also inaccessible due to restrictions on use of this.

    The solution is to be explicit. Explicit is usually a good thing in my book (unless it becomes boilerplate).

    public class Foo {
        class Bar extends Foo {
    
        }
    
        class Fooey extends Bar {
            Fooey() {
                Foo.this.super();
            }
        }
    }
    

    Better yet, don’t have an inner class extend its own outer class, or extend any inner class.

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

Sidebar

Ask A Question

Stats

  • Questions 191k
  • Answers 192k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer use Group and Sum: from s in SalesPeople group s… May 12, 2026 at 6:16 pm
  • Editorial Team
    Editorial Team added an answer You need to investigate multi-threading. By creating a thread and… May 12, 2026 at 6:16 pm
  • Editorial Team
    Editorial Team added an answer $('#date2').DatePicker({ flat: true, date: ['2008-07-31', '2008-07-28'], current: '2008-07-31', format: 'Y-m-d',… May 12, 2026 at 6:16 pm

Related Questions

Coming from a Java background, I'm used to the common practice of dealing with
I have had a little experience with CSS but am always befuddled when I
I am trying to send a query to SQLite from the command line using
I am working on localization for a asp.net application that consists of several projects.
I am looking for good methods of manipulating HTML in PHP. For example, the

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

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.