Статические поля и константы определяются также как и обычно, только в начале указывается ключевое слово static. Разница лишь в том, что статическое поле мы можем изменить извне обратившись к нему через класс.
Статические методы относятся ко всему классу и обычно высчитывают значения которые не влияют на внутренние поля класса.
// Статические переменные и методы класса class MyStatic { static const PI = 3.14159; static int Cost = 2; static void hi() => print ( 'Static Method' ); } // Программа void main ( ) { print ( MyStatic.PI ); // 3.14159 print ( MyStatic.Cost ); // 2 MyStatic.Cost = 3; print ( MyStatic.Cost ); // 3 MyStatic.hi(); // Static Method }
Абстрактные классы определяются с ключевым словом abstract и не отличаются от обычных, за исключением того что мы не можем напрямую создавать объект такого класса через конструктор.
Абстрактные методы могут быть описаны только в абстрактных классах и не имеют тела. Важно также учитывать что все классы наследуемые от абстрактного с подобными методами обязаны их реализовать, т.е. назначить тело метода.
// Абстрактный класс c абстрактным методом abstract class AbstractContainer { void updateChildren(); } class MyClass extends AbstractContainer { void updateChildren() { print ( 'updateChildren' ); } } // Программа void main ( ) { var abstractValue = MyClass ( ); abstractValue.updateChildren(); // updateChildren }