Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ClassC extends ClassB {
- //additional functionality
- }
- public class Class1 extends ClassC {...}
- public abstract class ParentOfB {
- // Additional functionality
- }
- public class B extends ParentOfB { // The only change in B
- }
- public class B1 {
- public void b1() {
- System.out.println("B1");
- }
- }
- public class C1 extends B1 {
- public void c1() {
- System.out.println("C1");
- }
- }
- -------------------------- Adding New B1 Functionality to C1 ---------------------
- public interface B_EXTRA {
- void b_extra();
- }
- public class B_EXTRA_IMPL implements B_EXTRA {
- public B1 m_b1;
- B_EXTRA_IMPL(B1 base) {
- m_b1 = base;
- }
- @Override
- public void b_extra() {
- System.out.println("b_extra");
- }
- }
- public class C1X extends C1 implements B_EXTRA {
- B_EXTRA_IMPL b_extra;
- C1X() {
- super();
- b_extra = new B_EXTRA_IMPL((B1)this);
- }
- public void b1()
- {
- System.out.println("B1");
- }
- @Override
- public void b_extra() {
- b_extra.b_extra();
- }
- }
- public class D1 extends C1X {
- }
- public class Main {
- public static void main(String[] args) {
- D1 d = new D1();
- d.b1();
- d.c1();
- d.b_extra();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement