Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flutter每日一面(面试题三) #3

Open
ahyangnb opened this issue Dec 28, 2019 · 0 comments
Open

Flutter每日一面(面试题三) #3

ahyangnb opened this issue Dec 28, 2019 · 0 comments
Assignees
Labels
Dart部分 Flutter每日一面试题更新 每日一面 Flutter每日一面试题更新

Comments

@ahyangnb
Copy link
Owner

ahyangnb commented Dec 28, 2019

  • 1.Dart 语言的特性是怎么样的?

答案:

  • Productive(生产力高,Dart的语法清晰明了,工具简单但功能强大)

  • Fast(执行速度快,Dart提供提前优化编译,以在移动设备和Web上获得可预测的高性能和快速启动。)

  • Portable(易于移植,Dart可编译成ARM和X86代码,这样Dart移动应用程序可以在iOS、Android和其他地方运行)

  • Approachable(容易上手,充分吸收了高级语言特性,如果你已经知道C++,C语言,或者Java,你可以在短短几天内用Dart来开发)

  • Reactive(响应式编程)

  • 2.Dart 语言有哪些重要的概念?

答案:

  • 在Dart中,一切都是对象,所有的对象都是继承自Object

  • Dart是强类型语言,但可以用var或 dynamic来声明一个变量,Dart会自动推断其数据类型,dynamic类似c#

  • 没有赋初值的变量都会有默认值null

  • Dart支持顶层方法,如main方法,可以在方法内部创建方法

  • Dart支持顶层变量,也支持类变量或对象变量

  • Dart没有public protected private等关键字,如果某个变量以下划线(_)开头,代表这个变量在库中是私有的

  • 3.说下mixin extends implement 之间的关系?

答案:

继承(关键字 extends)、混入 mixins (关键字 with)、接口实现(关键字 implements)。这三者可以同时存在,前后顺序是extends -> mixins -> implements

Flutter中的继承是单继承,子类重写超类的方法要用@Override,子类调用超类的方法要用super。

在Flutter中,Mixins是一种在多个类层次结构中复用类代码的方法。mixins的对象是类,mixins绝不是继承,也不是接口,而是一种全新的特性,可以mixins多个类,mixins的使用需要满足一定条件。

  • 4.使用mixins的条件是什么?

答案:

随着Dart版本一直在变,这里讲的是Dart2.1中使用mixins的条件:

  • mixins类只能继承自object

  • mixins类不能有构造函数

  • 一个类可以mixins多个mixins类

  • 可以mixins多个类,不破坏Flutter的单继承

  • 5.mixin 怎么指定异常类型?

答案:

on关键字可用于指定异常类型。 on只能用于被mixins标记的类,例如mixins X on A,意思是要mixins X的话,得先接口实现或者继承A。这里A可以是类,也可以是接口,但是在mixins的时候用法有区别.

on 一个类:

class A {
  void a(){
    print("a");
  }
}


mixin X on A{
  void x(){
    print("x");
  }
}


class mixinsX extends A with X{
}

on 的是一个接口: 得首先实现这个接口,然后再用mix

class A {
  void a(){
    print("a");
  }
}

mixin X on A{
  void x(){
    print("x");
  }
}

class implA implements A{
  @override
  void a() {}
}

class mixinsX2 extends implA with X{
}

下一篇:Flutter每日一面(面试题四)

Flutter每日一面目录大全

@ahyangnb ahyangnb added the 每日一面 Flutter每日一面试题更新 label Dec 28, 2019
@ahyangnb ahyangnb self-assigned this Dec 28, 2019
@ahyangnb ahyangnb added the Dart部分 Flutter每日一面试题更新 label Dec 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dart部分 Flutter每日一面试题更新 每日一面 Flutter每日一面试题更新
Projects
None yet
Development

No branches or pull requests

1 participant