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 1016549
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T10:33:56+00:00 2026-05-16T10:33:56+00:00

I wrote a base class which defined many protected methods . Those methods are

  • 0

I wrote a base class which defined many protected methods. Those methods are called in its sub classes.
The methods define basic operations for its sub classes.
For instance:

class Base{
   protected void foo(){}
   protected void bar(){}
}

class Sub1 extends Base{//The sub class only needs Base.foo()
   public void po(){
     ...
     foo();
     ...
   }
}

class Sub2 extends Base{//The sub class only needs Base.bar()
   public void ko(){
     ...
     bar();
     ...
   }
}

class Sub3 extends Base{//The sub class needs both Base.bar() and Base.foo()
   public void lo(){
     ...
     bar();
     ...
     foo();
   }
}

I am just wondering if it is a good OOP design? Read the source, we know Sub1 doesn’t need Base.bar() at all, Sub2 doesn’t need Base.foo() at all. It’s sort of redundant I think. But I don’t know better solution, anyone could give some advice? Thanks!

  • 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-16T10:33:57+00:00Added an answer on May 16, 2026 at 10:33 am

    Generally you should avoid these kind of object dependencies in your design. If the functionality of foo() and bar() doesn’t change in derived classes, you might want to put it in an outer class and use that one instead:

    class Base{
    
    }
    
    class Helper1  {
       public void foo(){}
    }
    
    class Helper2  {
       public void bar(){}
    }
    
    class Sub1 extends Base{
       private Helper1 a = new Helper1();
       private Helper2 b = new Helper2();
    
       public void po(){
         ...
         a.foo();
         ...
         b.bar();
       }
    }
    
    class Sub2 extends Base{
       private Helper2 b = new Helper2();
    
       public void ko(){
         ...
         b.bar();
         ...
       }
    }
    

    This foo & bar example does not look well. Your problem might be a bad assignment of responsibility to the objects or misuse of inheritance. Posting the real code would help to write better answers.

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

Sidebar

Ask A Question

Stats

  • Questions 502k
  • Answers 502k
  • 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 Yes, but unfortunately it's in Ruby 1.9. require "date" Date.iso8601("2010-W32-5").strftime… May 16, 2026 at 2:41 pm
  • Editorial Team
    Editorial Team added an answer No, I'm not aware of any event that fires whenever… May 16, 2026 at 2:41 pm
  • Editorial Team
    Editorial Team added an answer Yes, as long as you are legally allowed in the… May 16, 2026 at 2:40 pm

Trending Tags

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

Top Members

Related Questions

I wrote a program out, which was all in one file, and the methods
I have a class Wizard which creates a wizard with pages defined in the
I have an ASP.NET web application project which references another project called ModusCore (or
I have a template class which looks like the following: template <template <class TypeT>
I'm trying to write a named scope that will order my 'Products' class based
For my current project I want to be able to load some classes from
Lets say I'm building a parser for a domain-specific language in F#. I've defined
I need to write a function which could create any type object. It receives
I am trying to write a class template that provides a comparison operator between
Not sure on my Ruby syntax here. I want to define a method that

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.