There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply () below.
If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.
Join the Discussion. Help a fellow learner on their journey.
Ask or answer a question about this exercise by clicking reply () below!
You can also find further discussion and get answers to your questions over in Language Help.
Agree with a comment or answer? Like () to up-vote the contribution!
Thanks everyone!
So in this “inheriting the Constructor” topic, “Noodle.java” is the parent class and in a different file, “Pho.java” is the child class, are there any rules to link two different files without importing one file in the other? I mean, for example…once the Pho class inherits from Noodle in Pho.java, we go back to Noodle.java and create a new Pho object. I understand they are linked, but is there any rule? Do They have to be in the same directory? or only with the name is enough??
Hey @patodeville, maybe I can help you. I am not on this lesson yet, but usually you have to specify the full file path if the file you are trying to import is not in the same directory.
Hope this will help!
But, if the file is in the same directory…
you can use
import ./<filename>
where filename is the name of the file. P.S. I may not be correct, as I am not on this lesson yet
The classes are part of a larger package called “package”. Classes within the same package will be able to access each other. That is how they are connected.
Go back to the lessons that cover public, private, scope, encapsulation etc. It’s covered there.
In a nutshell, you know how you access a field inside a class using the “.”? For example, if there was a class called “Car” with a field called “name” you would access it using “Car.name”?
Well, “this” just replaces the object name, when you are coding inside the object itself. For example, if you were inside the class “Car”, and you wanted to access the field “name”, it would be wierd to reference it as “Car.name” since you have not instantiated/created the object. So the code “this” takes place of the object name.
The general rule you can then follow is, whenever you want to access the instance variable, use “this” in front of it.
The lesson goes through this in more detail and does quite a good job imo.
What I don’t understand is, how can I create an instance of Pho ( the child class) inside Noodles (the parent class) Shouldn’t this be the other way around? Since Pho is inheriting everything from Noodles but not the other way around.
Hi everyone! Question about this lesson; for the second task of printing out phoChay’s shape, is it supposed to print “flat”? It seems to run with no error for me, but the task doesn’t show up as completed.
Im having a general problem with these lessons so far (as i see some others are too) in terms of the flow being used. It seems the main and referencing is being done in the parent (Noodle) which is pulling in child objects. I would think since the child inherits characteristics of the parent, the child (Pho) is where main() would be and pulling in methods, var, and constructors from parent.
The flow of these 2 classes seems the be opposite of that. Anyone else?
Also, in the explanation, they said there are 2 ways to access the parent. One is by using the parent constructor inside the child constructor (Triangle and Shapes) using “super(3)” inside the child constructor. This worked and i tested it.
But when i used the alternative way, which was using “this.numSides = 3” inside the child constructor, it didnt work and i got an error about “Implicit super constructor Shape() is undefined. Must explicitly invoke another constructor”.
According to the explanation, when using this. in this way, the super() constructor is secretly called. I did exactly this way and got the error.
Can any advanced folks explain why it didnt work using this? The codeAcademy should note about this error happening. Try it yourself and see. Will get error.
i found out why the sidebar example in this lesson did not work (using this keyword). After much reseach and talking with pro developers, it seems that the constructior in the super class (parent) must have also a constructor with no arguments (like just Shape() which gets passed when “this” is called. So the sidebar example for using “this” does not work as it is. Try it and see.
I spent so much time to figure out why and paying for these lessons. Code Academy, how about raising the QA on the lesson material? These concepts are challenging enough!