[BAEL-6859] Inner Classes vs. Subclasses in Java (#14608)

* [BAEL-6859] inner and sub classes

* [BAEL-6859] unit test cases added

---------

Co-authored-by: Bhaskar <bhaskar.dastidar@freshworks.com>
This commit is contained in:
Bhaskar Ghosh Dastidar
2023-08-19 01:06:51 +05:30
committed by GitHub
parent 8c838267ff
commit ff838d515d
7 changed files with 93 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
package com.baeldung.subclassinnerclass;
import java.util.HashMap;
public class EmailNotifier extends Notifier {
@Override
void notify(Message e) {
// Provide email specific implementation here
}
// Inner class for email connection
static class EmailConnector {
private String emailHost;
private int emailPort;
// Getter Setters
}
}

View File

@@ -0,0 +1,6 @@
package com.baeldung.subclassinnerclass;
public class Message {
private int message;
// getter setter and other atteibutes
}

View File

@@ -0,0 +1,17 @@
package com.baeldung.subclassinnerclass;
public class NotificationService {
void notifyMessages() {
// Sending a Text Message
Message textMessage = new Message();
Notifier textNotifier = new TextMessageNotifier();
textNotifier.notify(textMessage);
// Sending an Email Message
Message emailMessage = new Message();
Notifier emailNotifier = new EmailNotifier();
emailNotifier.notify(emailMessage);
}
}

View File

@@ -0,0 +1,5 @@
package com.baeldung.subclassinnerclass;
public abstract class Notifier {
abstract void notify(Message e);
}

View File

@@ -0,0 +1,14 @@
package com.baeldung.subclassinnerclass;
public class TextMessageNotifier extends Notifier {
@Override
void notify(Message e) {
// Provide text message specific implementation here
}
// Inner class for text message connection
private static class SMSConnector {
private String smsHost;
// Getter Setters
}
}