Help the world stop coronavirus! Stay home!

Prev Next

Java / Abstract Class

Can we mark a local inner class as abstract?

Yes.

public class OuterClass {
    public void instanceMethod(){
        abstract class InnerClass{
        }
    }
}

Below is an example that illustrates the usage of local inner abstract class.

public class SendNotification {

	public enum NotifyBy {
		MESSAGE, EMAIL, PHONECALL
	}

	public Runnable createNotification(NotifyBy type) {
		abstract class ProtoType implements Runnable {
			public void run() {
				prepareContent();
				sendNotification();
			}

			abstract void sendNotification();

			private void prepareContent() {
				// notification message content
			}
		}

		switch (type) {
		case EMAIL: {
			return new ProtoType() {
				void sendNotification() {
					System.out.println("Sent using email.");
				}
			};
		}
		case MESSAGE: {
			return new ProtoType() {
				void sendNotification() {
					System.out.println("communicated by text message.");
				}
			};
		}

		}

		return new ProtoType() {
			void sendNotification() {
				System.out.println("communicated by phone call.");
			}
		};
	}

	public static void main(String[] args) {
		new Thread(new SendNotification().createNotification(NotifyBy.MESSAGE)).start();
		;
	}

}

❤Cash Back At Stores you Love !!!❤

Earn your $10 reward when you make your first purchase through Ebates by signing up with clicking below button.

Ebates Coupons and Cash Back

More Related questions...

Show more question and Answers...

Enum

Comments & Discussions