Hello there and welcome back to this Java development course. So, last time we went over abstraction and your homework to do your job was to create an abstract animal class with two abstract methods, string get species name and double get await, then create two classes which would implement the abstract animal class as well as those methods accordingly. So, here is essentially what you should have done. So, here I have my you know public abstract class abstract animal right. And then I have two methods get species name and get weight, all right, abstract methods very simple. Then I have my Gazelle class, because l class extends abstract animal and overrides the two abstract methods inside abstract animal.
So in this case, it overrides the get species name to return Gazelle, since that is the class name. And it overrides the get wait to return 59.2 because that is because they'll wait Now I realize at this point it may or may not be the best example with a weight. Since I know every everything that goes out has a different weight. But for the sake of example, let's pretend that every single Gazelle has the same exact weight that weight is based on species and not you know, a lot of other factors. All right, and then I also have my zebra class as well, which also extends abstract animal for get species name and returns zebra. And for get weight, it returns 45.6.
So let's go and I put all of this into a different package, just package just so that things don't get you know, so unorganized. So right now in here, let's also go ahead and do new class. Let's go call this the main class and have a main method as well. And this is really where we're going to start to get into polymorphism, which we're going to be going over today. Now usually, I would showcase how the homework works, and then actually go into polymorphism. But today, we're just gonna go over polymorphism so morphism is actually the ability of an object to take on two different types.
So in this case, a very basic example would be abstract animal. A is equal to new zebra. There we go. So you'll see how since zebra is an abstract animal, and result we can do abstract animal A equals new zebra and not do abstract and zebra A equals new zebra so we can do it like this as well. So if we do a dot get species name, what do you think we'll get? Let's go and actually try this out.
So we'll do System dot out dot print ln a dot get species name, all right, and now if you run this, there we go, we get zebra. So this essentially the very basics of object of public morphism we're going to go a little bit deeper into it right now. But this is very basic. So we can now have abstract animal A is equal to new zebra. This is actually pretty useful. So actually, if I have in a graphics library called I think AWT.
So it's a graphics library for creating graphical user interfaces. In Java. There's this thing called a window listener and a window listeners, a window listener is essentially just a class that listens for when you press this, press this red button inside a window, right? And so it listens to it, and then you could actually give it your own window listener. So and window listener is actually a sort of like an abstract class. So you can extend that abstract class with the abstract method, you know, do on click for the red button, you know, closed button.
And then you could do for example, close the window, you know, put in code, close the window, and then you can pass that in to the main sort of frame and then in that window, listener, it will take your class so you could do set window listener, and then the class that extends window listener, the abstract class, and it utilizes polymorphism such as one example of where exactly we could use polymorphism. That said, it doesn't necessarily need to be just parent, you know, a class and then a class. So, you know, abstract animal is a class, and then zebra is a class that extend the class, it could also be a class that extends a class that extends a class. So what I mean by this so I mean, you could have for example, a new class, which is a vegetarian. Alright, and this vegetarian class will extend zebra Alright, and there we go.
And so now and this is going to be a zebra British shirt. Let's actually rename it to zebra, vegetarian, vegetarian zebra. I don't There are I don't think there are non vegetarian zebras but you know I mean for demonstration purposes as always All right, there we go. So I want to just do there I just renamed the file to a tyrian zebra. Alright, so now I have a class vegetarian zebra extend zebra now inside here what I could actually do is now do abstract animal A equals new vegetarian zebra. Alright, and there we go.
And so now if you print this you get the same exact sort of, sort of result. And we could also do zebra A equals new vegetarian zebra. See it? And there we go. Now let's go and actually do inside vegetarian zebra, we're going to do Public public string, get species name, okay? And we're going to return vegetarian zebra.
All right, there we go, then we're going to add an override, override annotation. There we go. All right. And now if we run this, the main class in result, we get vegetarian zebra. Okay? And so that essentially polymorphism.
So it's the ability of an object to take on many types. Alright, so that is essentially it for our Java development course. So this has been really sort of the basics of Java. And this is really what we would call core Java. So there's a lot, there's a lot more that we can go over after this. So using this knowledge, you could actually start to learn a lot of very fun stuff.
Like for example, you could start learning about file systems, you can start learning about graphical user interface programming, you can start learning about, you know, accessing databases in Java. Java is actually a very, very powerful language, which is why it's so popular. It's mainly used for actually building back end servers. So when you go to website, you actually just get back, you know, design the design of the website. But after you go to that link, a million different things happens. Things happen.
Yeah, a million different things happen in the server. And oftentimes, that's actually going to be written in Java, since you know, Java is actually very popular for that. And that's mainly what it is used for. So yeah, that is essentially how, how we do things in Java. So for homework, you can go out and actually try to just get polymorphism work on a machine understand where's that what exactly it means is a little difficult to understand. So understand what it means.
And that way you can, you can move on to more more advanced Java lessons. That said, with this course, you now have a very good understanding of core Java or should have a very good understanding of core Java. So you can now personally what I would do, if I were in your situation, I would go on and learn about interfaces. So interfaces are essentially kind of like abstract classes. But you know, as I said in the previous lesson, they're a little bit different. So I want to learn about them.
There's the very good to know, you can also learn about graphical user interface programming, right now. That's also a very good thing to learn, like right after you learn core Java. And if you did that, you can learn about file systems, and maybe even move on to the very basics of server programming like on servlets Java. So yeah, there's a lot of things you can do. Now you can use your newfound knowledge to create quite a bit of things. So anyway, I hope you enjoyed this development course.
I hope you learned a lot and I wish you luck in all your future Java prospects.