| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| class Target { |
| const Target(this.stringValue, this.intValue, this.targetValue); |
| |
| final String stringValue; |
| final int intValue; |
| final Target targetValue; |
| |
| void hit() { |
| print('$stringValue $intValue'); |
| } |
| } |
| |
| class ExtendsTarget extends Target { |
| const ExtendsTarget(String stringValue, int intValue, Target targetValue) |
| : super(stringValue, intValue, targetValue); |
| } |
| |
| class ImplementsTarget implements Target { |
| const ImplementsTarget(this.stringValue, this.intValue, this.targetValue); |
| |
| @override |
| final String stringValue; |
| @override |
| final int intValue; |
| @override |
| final Target targetValue; |
| |
| @override |
| void hit() { |
| print('ImplementsTarget - $stringValue $intValue'); |
| } |
| } |
| |
| mixin MixableTarget { |
| String get val; |
| |
| void hit() { |
| print(val); |
| } |
| } |
| |
| class MixedInTarget with MixableTarget { |
| const MixedInTarget(this.val); |
| |
| @override |
| final String val; |
| } |