Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class InstrumentedHashSet extends HashSet{
- private int addCount = 0;
- //Пропуск конструктора. Перейдем к сути
- //…
- public boolean add(Object o){
- addCount++;
- super.add(o);
- }
- public boolean addAll(Collection c){
- addCount+=c.size();
- super.addAll(c);
- }
- //… Другие методы
- }
- class Subclass extends ParentNew{
- Date date;
- Subclass(){
- date = new Date();
- parentMethodThatOverrides();//вызывает переписанный метод, все в порядке
- }
- //…
- @Override
- public void parentMethodThatOverrides(){
- System.out.println("date in incorrect method: "+date);
- }
- }
- class ParentNew{
- ParentNew(){
- parentMethodThatOverrides();//вызывает не свой, а переписанный метод!
- }
- public void parentMethodThatOverrides(){}
- }
- class InstrumentedHashSet{
- private int addCount = 0;
- HashSet hashSet;
- //…
- InstrumentedHashSet(Collection c){
- hashSet = new HashSet(c);
- }
- //...
- public boolean add(Object o){
- addCount++;
- return hashSet.add(o);
- }
- public boolean addAll(Collection c){
- addCount+=c.size();
- return hashSet.addAll(c);
- }
- //… Другие методы
- }
- class Wrapper implements SomethingWithCallback {
- private final WrappedObject wrappedObject;
- //...
- @Override
- public void doSomething() {
- wrappedObject.doSomething();
- }
- @Override
- public void call() {
- System.out.println("Wrapper callback!");
- }
- //...
- }
- class WrappedObject implements SomethingWithCallback {
- private final SomeService service;
- //...
- @Override
- public void doSomething() {
- service.callSelf(this); // Комментарий
- }
- @Override
- public void call() {
- System.out.println("WrappedObject callback!");
- }
- //...
- }
- class SomeService{
- void callSelf(WrappedObject Object){
- Object.call();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement