super.lox 509 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. class A {
  2. method() {
  3. print "A method";
  4. }
  5. }
  6. class B < A {
  7. method() {
  8. print "B method";
  9. }
  10. test() {
  11. super.method();
  12. }
  13. }
  14. class C < B {}
  15. C().test();
  16. // ==================================================
  17. class Doughnut {
  18. cook() {
  19. print "Dunk in the fryer.";
  20. this.finish("sprinkles");
  21. }
  22. finish(ingredient) {
  23. print "Finish with " + ingredient;
  24. }
  25. }
  26. class Cruller < Doughnut {
  27. finish(ingredient) {
  28. // No sprinkles, always icing.
  29. super.finish("icing");
  30. }
  31. }