OOP: Inheritance

Learn the Basic Java Concepts Object Oriented Programming
13 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$69.99
List Price:  $99.99
You save:  $30
€67.10
List Price:  €95.86
You save:  €28.76
£55.67
List Price:  £79.54
You save:  £23.86
CA$100.49
List Price:  CA$143.56
You save:  CA$43.07
A$111.96
List Price:  A$159.95
You save:  A$47.99
S$94.87
List Price:  S$135.54
You save:  S$40.66
HK$544.16
List Price:  HK$777.41
You save:  HK$233.24
CHF 62.56
List Price:  CHF 89.37
You save:  CHF 26.81
NOK kr792.29
List Price:  NOK kr1,131.89
You save:  NOK kr339.60
DKK kr500.54
List Price:  DKK kr715.08
You save:  DKK kr214.54
NZ$123.74
List Price:  NZ$176.78
You save:  NZ$53.04
د.إ257.07
List Price:  د.إ367.26
You save:  د.إ110.19
৳8,330.24
List Price:  ৳11,900.85
You save:  ৳3,570.61
₹5,945.56
List Price:  ₹8,494.03
You save:  ₹2,548.46
RM315.51
List Price:  RM450.75
You save:  RM135.24
₦108,149.19
List Price:  ₦154,505.46
You save:  ₦46,356.27
₨19,403.53
List Price:  ₨27,720.51
You save:  ₨8,316.98
฿2,393.75
List Price:  ฿3,419.79
You save:  ฿1,026.04
₺2,454.67
List Price:  ₺3,506.82
You save:  ₺1,052.15
B$425.95
List Price:  B$608.53
You save:  B$182.58
R1,282.09
List Price:  R1,831.63
You save:  R549.54
Лв131.15
List Price:  Лв187.37
You save:  Лв56.21
₩101,234.93
List Price:  ₩144,627.53
You save:  ₩43,392.60
₪254.67
List Price:  ₪363.83
You save:  ₪109.16
₱4,117.86
List Price:  ₱5,882.91
You save:  ₱1,765.05
¥10,949.58
List Price:  ¥15,642.93
You save:  ¥4,693.35
MX$1,405.49
List Price:  MX$2,007.92
You save:  MX$602.43
QR254.12
List Price:  QR363.05
You save:  QR108.92
P963.49
List Price:  P1,376.48
You save:  P412.98
KSh8,999.72
List Price:  KSh12,857.29
You save:  KSh3,857.57
E£3,561.31
List Price:  E£5,087.81
You save:  E£1,526.49
ብር8,689.79
List Price:  ብር12,414.52
You save:  ብር3,724.72
Kz64,250.82
List Price:  Kz91,790.82
You save:  Kz27,540
CLP$69,143.42
List Price:  CLP$98,780.55
You save:  CLP$29,637.13
CN¥510.67
List Price:  CN¥729.56
You save:  CN¥218.89
RD$4,244.94
List Price:  RD$6,064.47
You save:  RD$1,819.52
DA9,440.04
List Price:  DA13,486.35
You save:  DA4,046.31
FJ$162.13
List Price:  FJ$231.62
You save:  FJ$69.49
Q537.12
List Price:  Q767.35
You save:  Q230.22
GY$14,584.29
List Price:  GY$20,835.60
You save:  GY$6,251.30
ISK kr9,693.35
List Price:  ISK kr13,848.23
You save:  ISK kr4,154.88
DH701.59
List Price:  DH1,002.31
You save:  DH300.72
L1,285.64
List Price:  L1,836.70
You save:  L551.06
ден4,127.89
List Price:  ден5,897.23
You save:  ден1,769.34
MOP$558.06
List Price:  MOP$797.27
You save:  MOP$239.20
N$1,283.39
List Price:  N$1,833.49
You save:  N$550.10
C$2,565.21
List Price:  C$3,664.75
You save:  C$1,099.53
रु9,482.30
List Price:  रु13,546.73
You save:  रु4,064.42
S/259.58
List Price:  S/370.84
You save:  S/111.26
K282.68
List Price:  K403.85
You save:  K121.16
SAR262.90
List Price:  SAR375.59
You save:  SAR112.68
ZK1,929.21
List Price:  ZK2,756.13
You save:  ZK826.92
L333.95
List Price:  L477.10
You save:  L143.14
Kč1,686.22
List Price:  Kč2,408.98
You save:  Kč722.76
Ft27,781.83
List Price:  Ft39,690.03
You save:  Ft11,908.20
SEK kr772.17
List Price:  SEK kr1,103.14
You save:  SEK kr330.97
ARS$71,242.69
List Price:  ARS$101,779.64
You save:  ARS$30,536.94
Bs481.71
List Price:  Bs688.19
You save:  Bs206.47
COP$305,135.87
List Price:  COP$435,927.07
You save:  COP$130,791.20
₡35,171.10
List Price:  ₡50,246.58
You save:  ₡15,075.48
L1,769.55
List Price:  L2,528.04
You save:  L758.48
₲543,563.42
List Price:  ₲776,552.46
You save:  ₲232,989.03
$U3,109.25
List Price:  $U4,441.97
You save:  $U1,332.72
zł286.15
List Price:  zł408.81
You save:  zł122.65
Already have an account? Log In

Transcript

Hello there, and welcome back to this Java development course. So last time we moved our constructors you had some homework to do. Your job was to add a constructor to our Hippo class, which would take a weight in grams and height and millimeters and then assign it to weighting kilometer weight in kilograms and height in meters accordingly. So here is essentially what I've done. So first of all, I cast the weight in grams to double and then divided by thousand, and then I cast the height and millimeters to double and divide that by 1000 as well so that it returns a double. All right, and so here is essentially how it looks.

So here I could go ahead and input some values. And now if I run this, save it and there we go. So it calls my structure with two inputs and then 10.4 or five, six is the height and 1.5 is that weight in kilograms. I don't know what kind of Hippo this is. This seems like a very, very weird very, very tall hippo. But, yeah, so that's it.

That is essentially what you should have done. Alright, so today we're going to be going over inheritance. And yeah, without further ado, let's get into today's lesson. Alright. So, inheritance, what is inheritance? Well, let's say that we had a class animal.

All right. So we're going to new class animal, okay. All right. Now, our animal class has a couple of attributes. So we have an int wait. Wasn't a weight in kilograms?

It in height and meters. Now keep it like that for now. All right. So our animal class has its weight in kilograms and it in in tight in meters. Now. Our Hippo class is an animal Right.

So it also has a weight in kilograms and a height in meters. So we can actually use this very handy keyword called extends. So class Hippo extends animal. All right, there we go. And now we can just delete these. And there we go.

Let's actually make this double just, that would work. Double. There we go. All right. Okay, and so now as you can see, since our class Hippo extends our class animal, we automatically carries the values over to it. So weight in kilograms and height in meters, as you can see returns weight in kilograms and height in meters, even though they are not defined inside the hippo class.

They're defined in the animal class and since the hippo class extends the animal class, result, values are essentially there. So if you run this, everything will be exactly the same as before. There we go. As you can see, we can also extend methods. So inherit methods. So if we go to move these methods, this method, these methods over here as well.

As you can see, everything now stays exactly the same. So, our Hippo class inherits these methods from animal. All right. So we've done that. And we've understood the very basics of inheritance. But else what what else can we do with inheritance?

Well, first of all, we can inherit multiple different things. So for example, we can have a public class animal. Let's go ahead and copy this in copy and the weight in kilograms. There we go. All right. So we can have a class animal and then we can also have Class mammal as well.

So we're going to create a class mammal right here. And that mammal class will extend animal. Whoops extends animal. There we go. And then adds in string. Color.

For. There we go. And then we'll have a hippo class which extends mammal and not animal. Now, this Hippo class will have both the attributes and methods of both animal, and mammal. This mammal extends animal. So it will have color refer, weight in kilograms and height in meters, which is what we see here.

Now, I'm sure you're wondering what if we have a constructor in either of the classes that we extend? Well, let's see what happens. So we in which they are we ever mammal class, okay, and we go ahead and add a constructor Here, so we'll do mammal. There we go. And then we'll take in a string, color of fur, as input. And then we do this dot color equals color of fur.

There we go. All right. And now if we go ahead and run this, look at this Hippo class, we get an error. So if you go and take a look at it, implicit super constructor for mammal is undefined, must explicitly invoke another constructor. So what this is telling us is that essentially, when we create this constructor, it can't actually refer to a mammal constructor. So mammal has a different constructor.

So how can we change this? Well, we can do another string color of for, whoops, no color buffer and then pass this in to super fast. just super. And color. Oh. And there we go.

So what this does is it essentially seems to be the problem. Oh, well, that's weird. Oh, there we go. I see right here I put a lot of different color. There we go. Color buffer.

There we go. And so now we pass this into the super constructor of mammal. And this gets called the animal constructor, which is passed in to whatever we put. So now if you go to classes and objects, and you'll see I actually put a string here we can now put in something like black for hippo. Is Hippo mammal. I don't actually think anybody's a mammal.

Because it doesn't have fur. But then is it not a mammal? What is What is it then? Anyway, let's just say it as a mammal for now and as black for just for example purposes. And so now we can add in the black into the color for and now we can do System dot out dot print ln H dot whoops. Yeah, actually, no, that was correct.

H. Cofer. There we go. So now if we run this there we go, you'll see it prints black. So that's what since that will that that is what we put in here. So what is happening so when I declare a new Hippo, this is essentially calling this method right here. There we go.

So I pass in weight in grams as 1500. height in millimeters as 10,456. And color refer as a string as black. So what happens with the color for it passes the color for down into the super constructor mammal. Then if you go to the mammal constructor, it just calls this so this super, essentially calling this method right here and then passing in this value right here which is black. Remember that. So pass it in that value and then it assigns this dot color of for equals to color further we pass in through the input.

Then when we in classes and objects when we refer to our Hippo H dot color afor it refers to this color of for loops that we have assigned black to. And we get back this black that prints out. So that is how we use the super keyword along with using constructors. No, that is how we use the super keyword and how we use constructors with inheritance. There we go. Finally got that out.

Okay. Now let's take a look at another also quite useful keyword. All right, so the instance of keyword essentially just checks whether or not a class is an instance. Or inherits another class. So we can actually or no, in this case going to be checked with an object. Remember, it's gonna check an object is an instance of a class.

There we go. So we can actually do if h instance. If h instance of Hippo we're going to print it is. So instance of keyword essentially will return true if the object on the left is an instance of the object on the right. So an incident is it means that it is either the class or it inherits or, or the class that it inherits. Sure.

So in this case, it's gonna return true since it is an instance of hippo. There we go. As you can see, it is But if we have animal here, we also get true. As you can see it is as well. And same thing with mammal. It'll return back and instance that it's in that instance of is true.

There we go. All right. And now if we go ahead and actually do if we do, instead of Hippo H, we're going to have for example, let's just say mammal, H equals new mammal. And then here, we're just going to pass in black since it's a different problem. Okay, there we go. I put an either for some reason.

There we go. All right, and now we're just going to comment this out. So now if we do h instance of Hippo and run this, we get false. So you'll see else this is System dot out dot print ln. It is not there we go. And now if we run this you'll see it is not.

So. H is not mammal. An object of type mammal is not an instance of Hippo, since Hippo, extends mammal. And not mammal extends hippo. So then mammal is sort of higher up the tree sukkos animal than mammal than hippo. And since we have a mammal, ah, you can see since you have a mammal Ah, it's not a hippo, it's a mammal animal.

Pretty Pretty understandable. Alright, so that is pretty much it for this lesson. We went over a lot of different topics. So we went over construct or no we didn't go over constructor you went over the super keyword inheritance. The instance of keyword using constructors with inheritance. This is a lot of information to process So go ahead and really try to get this code working, really try to understand the concept.

And that'll be very good. And really try to get the homework when you're doing it. So that way, you'll understand it. Alright, so anyway, let's assign some homework. All right. So, homework, your job is to, first of all, recreate this code that I did here.

Second of all, you need to create another class. So we're gonna have animal, then mammal. And then also you're gonna have a class insect, which will just have doing six what is the thing that insects have, let's say number of legs, okay, since insects oftentimes have different varying number of links, so it's gonna have a number of legs, attribute. And then you're also going to have another spider class, okay, it's going to be an insect, our spiders index. I think they are, this is the whole whether animals are parts of other, you know, animal groups, it's insanely confusing. Anyway.

Yeah, spider. You gonna have a spider class and an insect class spider is going to extend index. And then your job is to add in a constructor for spider you know, and to set the spiders number of eyes as well. Since I mean I pretty sure spiders have different number of eyes maybe eight for all of them. I don't know entirely sure. For demonstration purposes once you say that it's different.

So yeah, a class insect with number of legs and a class spider which extends insect with number of eyes. And both of them will need a constructor. Alright, so I wish you luck with homework and I'll see you next time.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.