how can we implement methods in multiples classes if we add methods in interface





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







5















In an interview interviewer asked this question. In an Interface1 there are 10 methods and implementing that Interface1 there are 1000 classes. Later in Interface1 I have added 11th method. How can you implement that 11th method in all classes. later he asked how can you implement in only few classes. Because of 1000 classes you cannot just go to each class and implement, its time taking. Can you tell me how to solve.










share|improve this question























  • for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

    – Stultuske
    13 hours ago






  • 4





    Use an abstract class that implements the method, let your classes extend this abstract class.

    – Lutz Horn
    13 hours ago











  • If your classes use inheritance, you could update it in the base classes.

    – Patrick
    13 hours ago











  • Probably, you need an abstract class?

    – dehasi
    12 hours ago











  • Step 1. Refactor so you don't have 1,000 classes

    – John Wu
    8 hours ago


















5















In an interview interviewer asked this question. In an Interface1 there are 10 methods and implementing that Interface1 there are 1000 classes. Later in Interface1 I have added 11th method. How can you implement that 11th method in all classes. later he asked how can you implement in only few classes. Because of 1000 classes you cannot just go to each class and implement, its time taking. Can you tell me how to solve.










share|improve this question























  • for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

    – Stultuske
    13 hours ago






  • 4





    Use an abstract class that implements the method, let your classes extend this abstract class.

    – Lutz Horn
    13 hours ago











  • If your classes use inheritance, you could update it in the base classes.

    – Patrick
    13 hours ago











  • Probably, you need an abstract class?

    – dehasi
    12 hours ago











  • Step 1. Refactor so you don't have 1,000 classes

    – John Wu
    8 hours ago














5












5








5








In an interview interviewer asked this question. In an Interface1 there are 10 methods and implementing that Interface1 there are 1000 classes. Later in Interface1 I have added 11th method. How can you implement that 11th method in all classes. later he asked how can you implement in only few classes. Because of 1000 classes you cannot just go to each class and implement, its time taking. Can you tell me how to solve.










share|improve this question














In an interview interviewer asked this question. In an Interface1 there are 10 methods and implementing that Interface1 there are 1000 classes. Later in Interface1 I have added 11th method. How can you implement that 11th method in all classes. later he asked how can you implement in only few classes. Because of 1000 classes you cannot just go to each class and implement, its time taking. Can you tell me how to solve.







java






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 13 hours ago









rohanrohan

342




342













  • for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

    – Stultuske
    13 hours ago






  • 4





    Use an abstract class that implements the method, let your classes extend this abstract class.

    – Lutz Horn
    13 hours ago











  • If your classes use inheritance, you could update it in the base classes.

    – Patrick
    13 hours ago











  • Probably, you need an abstract class?

    – dehasi
    12 hours ago











  • Step 1. Refactor so you don't have 1,000 classes

    – John Wu
    8 hours ago



















  • for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

    – Stultuske
    13 hours ago






  • 4





    Use an abstract class that implements the method, let your classes extend this abstract class.

    – Lutz Horn
    13 hours ago











  • If your classes use inheritance, you could update it in the base classes.

    – Patrick
    13 hours ago











  • Probably, you need an abstract class?

    – dehasi
    12 hours ago











  • Step 1. Refactor so you don't have 1,000 classes

    – John Wu
    8 hours ago

















for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

– Stultuske
13 hours ago





for all classes: make it a default method. "only few classes", you can't. what's in an interface goes for all the implementations

– Stultuske
13 hours ago




4




4





Use an abstract class that implements the method, let your classes extend this abstract class.

– Lutz Horn
13 hours ago





Use an abstract class that implements the method, let your classes extend this abstract class.

– Lutz Horn
13 hours ago













If your classes use inheritance, you could update it in the base classes.

– Patrick
13 hours ago





If your classes use inheritance, you could update it in the base classes.

– Patrick
13 hours ago













Probably, you need an abstract class?

– dehasi
12 hours ago





Probably, you need an abstract class?

– dehasi
12 hours ago













Step 1. Refactor so you don't have 1,000 classes

– John Wu
8 hours ago





Step 1. Refactor so you don't have 1,000 classes

– John Wu
8 hours ago












1 Answer
1






active

oldest

votes


















13














He was likely hinting at default methods in interfaces (available only from java 8).



E.g:



interface MyInterface {
default void method() {
// do stuff...
}
}


All classes implementing the interface will inherit the method, you can yet override it in case you need specific behavior.



class MyClass implements MyInterface {

@Override
public void method() {
// do stuff...
}
}




Also, you can leave the base method blank (that does nothing) and then override it in your 11 classes. Or you can have another interface (e.g: SubInterface) extend MyInterface, override the base method and have your 11 classes implement directly the SubInterface so they inherit the most specific behavior. There are countless possibilities for what you have asked (including abstract classes, as someone mentioned in the comments).






share|improve this answer


























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55572971%2fhow-can-we-implement-methods-in-multiples-classes-if-we-add-methods-in-interface%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    13














    He was likely hinting at default methods in interfaces (available only from java 8).



    E.g:



    interface MyInterface {
    default void method() {
    // do stuff...
    }
    }


    All classes implementing the interface will inherit the method, you can yet override it in case you need specific behavior.



    class MyClass implements MyInterface {

    @Override
    public void method() {
    // do stuff...
    }
    }




    Also, you can leave the base method blank (that does nothing) and then override it in your 11 classes. Or you can have another interface (e.g: SubInterface) extend MyInterface, override the base method and have your 11 classes implement directly the SubInterface so they inherit the most specific behavior. There are countless possibilities for what you have asked (including abstract classes, as someone mentioned in the comments).






    share|improve this answer






























      13














      He was likely hinting at default methods in interfaces (available only from java 8).



      E.g:



      interface MyInterface {
      default void method() {
      // do stuff...
      }
      }


      All classes implementing the interface will inherit the method, you can yet override it in case you need specific behavior.



      class MyClass implements MyInterface {

      @Override
      public void method() {
      // do stuff...
      }
      }




      Also, you can leave the base method blank (that does nothing) and then override it in your 11 classes. Or you can have another interface (e.g: SubInterface) extend MyInterface, override the base method and have your 11 classes implement directly the SubInterface so they inherit the most specific behavior. There are countless possibilities for what you have asked (including abstract classes, as someone mentioned in the comments).






      share|improve this answer




























        13












        13








        13







        He was likely hinting at default methods in interfaces (available only from java 8).



        E.g:



        interface MyInterface {
        default void method() {
        // do stuff...
        }
        }


        All classes implementing the interface will inherit the method, you can yet override it in case you need specific behavior.



        class MyClass implements MyInterface {

        @Override
        public void method() {
        // do stuff...
        }
        }




        Also, you can leave the base method blank (that does nothing) and then override it in your 11 classes. Or you can have another interface (e.g: SubInterface) extend MyInterface, override the base method and have your 11 classes implement directly the SubInterface so they inherit the most specific behavior. There are countless possibilities for what you have asked (including abstract classes, as someone mentioned in the comments).






        share|improve this answer















        He was likely hinting at default methods in interfaces (available only from java 8).



        E.g:



        interface MyInterface {
        default void method() {
        // do stuff...
        }
        }


        All classes implementing the interface will inherit the method, you can yet override it in case you need specific behavior.



        class MyClass implements MyInterface {

        @Override
        public void method() {
        // do stuff...
        }
        }




        Also, you can leave the base method blank (that does nothing) and then override it in your 11 classes. Or you can have another interface (e.g: SubInterface) extend MyInterface, override the base method and have your 11 classes implement directly the SubInterface so they inherit the most specific behavior. There are countless possibilities for what you have asked (including abstract classes, as someone mentioned in the comments).







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 12 hours ago

























        answered 13 hours ago









        Marko PacakMarko Pacak

        2,4891529




        2,4891529
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55572971%2fhow-can-we-implement-methods-in-multiples-classes-if-we-add-methods-in-interface%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Aikido

            Tivadar Csontváry Kosztka

            Metroo de Marsejlo