Dart基础第十篇:面向对象之抽象类

/**
 * Dart中的抽象类:Dart抽象类主要用于定义标准,子类可以继承抽象类,也可以实现抽象类接口
 * 1、抽象类通过abstract关键字来定义
 * 2、Dart中的抽象方法不能用abstract声明,Dart中没有方法体的方法我们成为抽象方法。
 * 3、如果子类继承抽象类必须实现里边的抽象方法
 * 4、如果把手相累当做接口实现的话必须得实现抽象类里边定义的所有属性和方法
 * 5、抽象类不能被实例化,只有继承它的子类才可以实例化
 *
 * extends和implements的区别:
 * 1、如果要复用抽象类里的方法,并且要用抽象方法约束子类的话我们就用extends继承抽象类
 * 2、如果只是把抽象类当做标准的话我们就用implements实现抽象类
 */
abstract class Animal{
  eat();//这个就是抽象方法
  sleep();

  /**
   * 抽象类中的普通方法 只能通过子类实例化后才能使用
   */
  info(String name){
    print('我是$name实例抽象类中的普通方法');
  }

}

/**
 * 下边的实例就是多态
 * 定义了两个实例 继承了Animal并重写父类的方法,而有不同的表现 这就是多态。
 */
class Dog extends Animal{
  @override
  eat() {
    print('dog eat');
  }

  @override
  sleep() {
    print('dog sleep');
  }
}

class Cat extends Animal{
  @override
  eat() {
    print('cat eat');
  }

  @override
  sleep() {
    print('cat sleep');
  }
}

void main(){
  Dog dog = new Dog();
  dog.eat();
  dog.sleep();
  dog.info('dog');
  Cat cat = new Cat();
  cat.eat();
  cat.sleep();
  cat.info('cat');
}
发布了66 篇原创文章 · 获赞 36 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/u013600907/article/details/99843151