| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // Dart test for testing super field access. |
| |
| import "package:expect/expect.dart"; |
| |
| class A { |
| A() { |
| city = "Bern"; |
| } |
| String greeting() { |
| return "Gruezi"; |
| } |
| |
| String city = ""; |
| } |
| |
| class B extends A { |
| B() : super() {} |
| String greeting() { |
| return "Hola " + super.greeting(); |
| } |
| } |
| |
| class C extends B { |
| C() : super() {} |
| String greeting() { |
| return "Servus " + super.greeting(); |
| } |
| |
| String get city { |
| return "Basel " + super.city; |
| } |
| } |
| |
| class SuperFieldTest { |
| static testMain() { |
| A a = new A(); |
| B b = new B(); |
| C c = new C(); |
| Expect.equals("Gruezi", a.greeting()); |
| Expect.equals("Hola Gruezi", b.greeting()); |
| Expect.equals("Servus Hola Gruezi", c.greeting()); |
| |
| Expect.equals("Bern", a.city); |
| Expect.equals("Bern", b.city); |
| Expect.equals("Basel Bern", c.city); |
| c.city = "Zurich"; |
| Expect.equals("Basel Zurich", c.city); |
| } |
| } |
| |
| main() { |
| SuperFieldTest.testMain(); |
| } |