Libraries and visibility

suggest change

Unlike Java, Dart doesn’t have the keywords public, protected, and private. If an identifier starts with an underscore \_, it’s private to its library.

If you for example have class A in a separate library file (eg, other.dart), such as:

library other;

class A {
  int _private = 0;

  testA() {
    print('int value: $_private');  // 0
    _private = 5;
    print('int value: $_private'); // 5

and then import it into your main app, such as:

import 'other.dart';

void main() {
  var b = new B();

class B extends A {
  String _private;

  testB() {
    _private = 'Hello';
    print('String value: $_private'); // Hello
    print('String value: $_private'); // Hello

You get the expected output:

String value: Hello
int value: 0
int value: 5
String value: Hello

Feedback about page:

Optional: your email if you want me to get back to you:

Table Of Contents