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;
}
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
add a comment |
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
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
add a comment |
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
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
java
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
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).
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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).
add a comment |
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).
add a comment |
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).
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).
edited 12 hours ago
answered 13 hours ago
Marko PacakMarko Pacak
2,4891529
2,4891529
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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