samples/sidemeanings/src/org/apidesign/sidemeanings/PublicAbstract.java
changeset 324 a9ad091ed069
parent 99 4bf599099de7
     1.1 --- a/samples/sidemeanings/src/org/apidesign/sidemeanings/PublicAbstract.java	Sat Jun 14 09:54:19 2008 +0200
     1.2 +++ b/samples/sidemeanings/src/org/apidesign/sidemeanings/PublicAbstract.java	Wed Mar 25 22:14:46 2009 +0100
     1.3 @@ -1,22 +1,29 @@
     1.4  package org.apidesign.sidemeanings;
     1.5  
     1.6 -public final class PublicAbstract {
     1.7 -    private PublicAbstract() {}
     1.8 +public abstract class PublicAbstract {
     1.9 +    PublicAbstract() {}
    1.10  
    1.11 -    
    1.12 -    public abstract class Dirty {
    1.13 +    public abstract void increment();
    1.14 +
    1.15 +    public final void incrementTenTimes() {
    1.16 +        for (int i = 0; i < 10; i++) {
    1.17 +            increment();
    1.18 +        }
    1.19 +    }
    1.20 +
    1.21 +    public static abstract class Dirty extends PublicAbstract {
    1.22          // BEGIN: sidemeanings.PublicAbstract.Dirty
    1.23 -        public abstract void method();
    1.24 +        public abstract void increment();
    1.25          // END: sidemeanings.PublicAbstract.Dirty
    1.26      }
    1.27      
    1.28      
    1.29 -    public abstract class Clean {
    1.30 +    public static abstract class Clean extends PublicAbstract {
    1.31          // BEGIN: sidemeanings.PublicAbstract.Clean
    1.32 -        public final void method() {
    1.33 -            methodImpl();
    1.34 +        public final void increment() {
    1.35 +            overridableIncrement();
    1.36          }
    1.37 -        protected abstract void methodImpl();
    1.38 +        protected abstract void overridableIncrement();
    1.39          // END: sidemeanings.PublicAbstract.Clean
    1.40      }
    1.41  }