1. void main() {
    2. var p = new Person();
    3. p.sayHello();
    4. }
    5. class Eat {
    6. void sayHello() {
    7. print('in eat sayhello');
    8. }
    9. }
    10. class See {
    11. void sayHello() {
    12. print('in See sayhello');
    13. }
    14. }
    15. class See1 {
    16. void sayHello() {
    17. print('in See1 sayhello');
    18. }
    19. }
    20. // 通过 with 实现 mixin
    21. // 当多个类方法名相同时 先用自己的 如果自己没有 则用 最后一个mixin 的类的方法
    22. class Person extends See1 with Eat, See, About {
    23. void sayHello() {
    24. print('in Person sayhello');
    25. }
    26. @override
    27. void have_name() {
    28. print('test');
    29. }
    30. }
    31. // 而抽象类 更多是定义一个类 而没有去实现他 并且抽象类 也不能 使用 new 实例化
    32. // 抽象类的作用个人理解为 是去定义一个规则 而具体如何实现规则 则由继承抽象类的子类重写函数进行实现
    33. // 需要使用 abstract
    34. abstract class About {
    35. void have_name();
    36. }