Comments (5)
The attributes can be super()
into RecycledLoader
even if you use private final
. Furthermore, I believe that we defined the getter methods to access these attributes in the sub-class RecycledLoader
, so there really isn't a need to use protected final. This combined with the possibility that codecrunch would automatically reject all non- private final
attributes (part of CS2030 scope I think), is why protected final
wouldn't work. Hope this helps!
from 2122-s2.
Thanks, I know what you said can be done. But why not make life easier and use protected final so that the sub class can access. I just want to know the rationale in encouraging us to not use protected final
from 2122-s2.
I think it is to strictly maintain the abstraction barrier. In case we have more subclasses in the future and we may not want the other subclasses to be able to access the information. Also, if we directly use the attribute from loader, if we were to change the representation in loader, then we may have to make neccessary changes everywhere else too.
from 2122-s2.
For me I think it's cos the attributes in Loader are associated/shared with all Loaders, not just any specific subclass like RecycleLoader? So by restricting us to private final in the superclass Loader
, this reminds us to distinguish between declaring e.g. Loader loader = new RecycleLoader()
instead of RecycleLoader recycleLoader = new RecycleLoader()
if we are trying to access shared attributes, and declaring RecycleLoader recycleLoader = new RecycleLoader()
if we want to access the extended variables and methods (only) RecycleLoader provides(but Loader doesn't)?
This kind of sounds like Dependency Inversion Principle in a sense, cos you depend on the superclass Loader wherever possible instead of depending on RecycleLoader directly. This way your code that deals with shared attributes doesn't have to change if you only change the subclass(es) like RecycleLoader, you just update code that access extended attributes
from 2122-s2.
It is to maintain the Abstraction Barrier.
Personally, it is a habit of mine to create getter functions, that way I can "legally" refer to the private attributes.
from 2122-s2.
Related Issues (20)
- PYP Q 2d HOT 2
- PYP last qn HOT 7
- Recitation 09-extra pdf not on luminus HOT 2
- PECS HOT 5
- QN5 17/18S1 [Why is A not the answer?] HOT 4
- Q5 HOT 3
- Can anyone explain what is a functor and a monad isπ HOT 8
- Mock Q4b HOT 9
- Impending P.A.N.I.C HOT 22
- AY19/20 SS1 qn 7 HOT 4
- Question on reduce function HOT 4
- AY18/19 Q2 Cyclical Dependency HOT 3
- error in obtaining int[] from a stream HOT 4
- Q3d) When I solved the game of Life problem for labs, I used loops. Can someone post their code using streams for 3d and 3e ? HOT 2
- Assertion questions HOT 2
- Mock 4a help HOT 13
- What kind of stream operations allow us to use .parallel() operation? HOT 4
- Final Submission Folder Disappeared HOT 6
- Anyone solved the RedLight , GreenLight, AmberLight problem? Can you please post your code? HOT 2
- excercise 2 inheritence question
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 2122-s2.