Skip to content

Files

Latest commit

 

History

History
57 lines (42 loc) · 932 Bytes

overridden_fields.md

File metadata and controls

57 lines (42 loc) · 932 Bytes

Pattern: Overriding field

Issue: -

Description

Overriding fields is almost always done unintentionally. Regardless, it is a bad practice to do so.

Example of incorrect code:

class Base {
 Object field = 'lorem';

 Object something = 'change';
}

class Bad1 extends Base {
 @override
 final field = 'ipsum'; // LINT
}

class Bad2 extends Base {
 @override
 Object something = 'done'; // LINT
}

Example of correct code:

class Base {
 Object field = 'lorem';

 Object something = 'change';
}

class Ok extends Base {
 Object newField; // OK

 final Object newFinal = 'ignore'; // OK
}

Example of correct code:

abstract class BaseLoggingHandler {
 Base transformer;
}

class LogPrintHandler implements BaseLoggingHandler {
 @override
 Derived transformer; // OK
}

Further Reading