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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T13:07:51+00:00 2026-05-11T13:07:51+00:00

I have this class: public abstract class AbstractIncomingCall { /* class properties */ public

  • 0

I have this class:

public abstract class AbstractIncomingCall {      /*     class properties     */      public void changeStatus(/*some parameters*/){         //store parameters in class properties         isValid();     }      protected abstract boolean isValid(); } 

…which is extended by this class:

public class IncomingCallImpl extends AbstractIncomingCall{      //I override the parent's method     public void changeStatus(/*same parameters as parent's method*/) {         super.changeStatus(/*same parameters as parent's method*/);         //do something interesting      }      protected boolean isValid() throws StatusChangeNotOccurredException {         //implement my validation algorithm     } 

What I would like to achieve is ensuring that whenever changeStatus(/*some parameters*/) gets called the isValid() method is called; note that the isValid() method is implemented only in the concrete class, also it uses class properties inheritated from the parent class. Is there a way I can follow to ensure that isValid() is called other than calling super? I dislike very much the fact that I have to pass parameters all around, I think I’m going totally in the wrong direction and there is a cleaner way to achieve this. What I would like to keep in my code is the ‘isValid() calling logic’ in the abstract class, because every call needs to be validated and I can’t rely on me remembering this in the future 😛

Thanks in advance :]

  • 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. 2026-05-11T13:07:51+00:00Added an answer on May 11, 2026 at 1:07 pm

    It sounds like you want changeStatus() to follow the Template Method pattern. In this pattern, you define changeStatus() in the abstract class (making it final if you don’t trust people to extend properly), and have it call the required methods:

    public final void changeStatus() {     doSomethingSubclassSpecific();     isValid() }   protected abstract doSomethingSubclassSpecific(); 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 104k
  • Answers 105k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

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

    • 7 Answers
  • Editorial Team

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

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer And here comes the Global application class also know as… May 11, 2026 at 8:39 pm
  • Editorial Team
    Editorial Team added an answer How are you getting this list of URLS? If your… May 11, 2026 at 8:39 pm
  • Editorial Team
    Editorial Team added an answer The problem is your initialization vector size needs to be… May 11, 2026 at 8:39 pm

Related Questions

After I've seen this PDC session I wanted to try to learn a bit
Let's say I have this base class: abstract public class Base { abstract public
I have the following class: public abstract class AbstractParent { static String method() {
I have an abstract base class with a TcpClient field: public abstract class ControllerBase

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.