Difference between revisions of "Java/C3/Subclassing-and-Method-Overriding/English-timed"
From Script | Spoken-Tutorial
Sandhya.np14 (Talk | contribs) |
Sandhya.np14 (Talk | contribs) |
||
Line 172: | Line 172: | ||
|- | |- | ||
| 04:21 | | 04:21 | ||
− | | We can see that we get the output as | + | | We can see that we get the output as: |
'''Name: Nikkita Dinesh''' | '''Name: Nikkita Dinesh''' | ||
+ | |||
'''Email: abc@gmail.com''' | '''Email: abc@gmail.com''' | ||
Line 266: | Line 267: | ||
|- | |- | ||
| 06:39 | | 06:39 | ||
− | | Inside the '''method''', type '''return''' within brackets '''Name''' plus '''getName()''' plus '''slash n''' plus '''Email''' plus '''getEmail() '''plus '''slash n''' plus '''Manager of '''plus '''getDepartment() semicolon.''' | + | | Inside the '''method''', type: '''return''' within brackets '''Name''' plus '''getName()''' plus '''slash n''' plus '''Email''' plus '''getEmail() '''plus '''slash n''' plus '''Manager of '''plus '''getDepartment()''' semicolon. '''Save''' the file. |
|- | |- | ||
| 07:07 | | 07:07 | ||
− | | Note that now, we have the ''' | + | | Note that now, we have the method '''getDetails '''in both ''''Manager'''' and ''''Employee' class.''' |
|- | |- | ||
Line 279: | Line 280: | ||
| 07:22 | | 07:22 | ||
| A''' method '''in the '''subclass '''is said to '''override '''the '''method '''in the '''parent class '''if: | | A''' method '''in the '''subclass '''is said to '''override '''the '''method '''in the '''parent class '''if: | ||
− | '''name''' | + | *'''name''' |
− | '''return type''' | + | |
− | '''argument list''' | + | *'''return type''' |
− | + | ||
+ | *'''argument list''' | ||
+ | match exactly. | ||
|- | |- | ||
| 07:33 | | 07:33 | ||
− | | Come back to the '''Manager | + | | Come back to the '''Manager''' class. |
|- | |- | ||
| 07:36 | | 07:36 | ||
− | | Before | + | | Before the '''getDetails() method, '''type: '''@Override.''' |
|- | |- | ||
Line 303: | Line 306: | ||
| 07:57 | | 07:57 | ||
| '''Annotations:''' | | '''Annotations:''' | ||
− | start with '''at | + | * start with '''at (@)''' sign character |
− | provide data about a program | + | * provide data about a program |
− | have no direct effect on the operation of the code. | + | * have no direct effect on the operation of the code. |
|- | |- | ||
| 08:10 | | 08:10 | ||
− | | If a '''method '''is | + | | If a '''method '''is annotated with '''@Override''', compiler generates '''error '''if: |
+ | * the''' method''' does '''override''' a '''method''' declared in a '''superclass'''. | ||
|- | |- | ||
| 08:23 | | 08:23 | ||
− | | The '''method signature '''is different in its '''superclass.''' | + | |* The '''method signature '''is different in its '''superclass.''' |
|- | |- | ||
| 08:28 | | 08:28 | ||
− | | Now, let us come back to the '''IDE.''' Come back to the '''Manager class | + | | Now, let us come back to the '''IDE.''' Come back to the '''Manager class'''. |
|- | |- | ||
| 08:34 | | 08:34 | ||
− | | The '''at | + | | The '''at (@)''' sign character indicates the compiler that what follows is an '''annotation.''' |
|- | |- | ||
| 08:42 | | 08:42 | ||
− | | Here, it shows that the '''getDetails | + | | Here, it shows that the '''getDetails()''' method is '''overridden.''' |
|- | |- | ||
Line 333: | Line 337: | ||
|- | |- | ||
| 08:51 | | 08:51 | ||
− | | Save the file and run the program. | + | | Save the file and '''run''' the program. |
|- | |- | ||
| 08:55 | | 08:55 | ||
− | | We get the '''output''' as follows | + | | We get the '''output''' as follows: |
'''Name: Nikkita Dinesh''' | '''Name: Nikkita Dinesh''' | ||
+ | |||
'''Email: abc@gmail.com''' | '''Email: abc@gmail.com''' | ||
+ | |||
'''Manager of Accounts''' | '''Manager of Accounts''' | ||
Line 352: | Line 358: | ||
|- | |- | ||
| 09:16 | | 09:16 | ||
− | | In this way, we override the '''method''' of the '''parent class '''by the '''subclass'''. | + | | In this way, we '''override''' the '''method''' of the '''parent class '''by the '''subclass'''. |
|- | |- | ||
| 09:23 | | 09:23 | ||
− | | Let us summarize. | + | | Let us summarize. In this tutorial, we have learnt about: |
− | In this tutorial we have learnt about | + | *'''Subclassing''' and |
− | '''Subclassing''' and | + | *'''Method Overriding'''. |
− | '''Method Overriding''' | + | |
|- | |- | ||
| 09:31 | | 09:31 | ||
− | | As an '''assignment''' | + | | As an '''assignment''', create a '''class Vehicle '''which has a method '''run '''that prints “'''The Vehicle is running.”''' |
|- | |- | ||
Line 375: | Line 380: | ||
|- | |- | ||
| 09:52 | | 09:52 | ||
− | | To know more about the Spoken Tutorial Project | + | | To know more about the Spoken Tutorial Project, watch the video available at the following link. It summarizes the Spoken Tutorial project. If you do not have good bandwidth, you can download and watch it. |
− | + | ||
− | It summarizes the Spoken Tutorial project | + | |
− | If you do not have good bandwidth, you can download and watch it | + | |
|- | |- | ||
| 10:06 | | 10:06 | ||
− | |The Spoken Tutorial Project Team | + | |The Spoken Tutorial Project Team: |
− | Conducts workshops using spoken tutorials | + | *Conducts workshops using spoken tutorials |
− | Gives certificates for those who pass an online test | + | *Gives certificates for those who pass an online test. |
− | For more details, please write to '''contact at spoken hyphen tutorial dot org''' | + | For more details, please write to '''contact at spoken hyphen tutorial dot org'''. |
|- | |- | ||
| 10:21 | | 10:21 | ||
− | |Spoken Tutorial Project is a part of the Talk to a Teacher project. | + | |'''Spoken Tutorial''' Project is a part of the '''Talk to a Teacher''' project. It is supported by the National Mission on Education through ICT, MHRD, Government of India. |
− | It is supported by the National Mission on Education through ICT, MHRD, Government of India. | + | More information on this mission is available at: |
− | More information on this | + | '''http://spoken-tutorial.org/NMEICT- Intro''' |
− | http://spoken-tutorial.org/NMEICT- Intro | + | |
|- | |- | ||
| 10:42 | | 10:42 | ||
− | | This is | + | | This is Arya Ratish from '''IIT Bombay''', signing off. |
Thanks for joining. | Thanks for joining. | ||
|} | |} |
Revision as of 08:44, 17 May 2017
|
|
00:01 | Welcome to the spoken-tutorial on Subclassing and Method overriding. |
00:06 | In this tutorial, we will learn about:
|
00:15 | Here we are using:
|
00:25 | To follow this tutorial, you must have knowledge of basics of Java and Eclipse IDE. |
00:32 | If not, for relevant Java tutorials, please visit our website. |
00:37 | First of all, we will learn what subclassing is. |
00:41 | It is a way to create a new class from an existing class. |
00:46 | The new class created is subclass or derived class or child class. |
00:53 | The already existing class is called superclass or base class or parent class. |
01:00 | Now, let me show you how to create a subclass. I have already created a project named MyProject. |
01:10 | I have created a class in it named Employee. |
01:15 | It has variables, name and email_address. |
01:19 | It also has the setter and getter methods for the class. |
01:24 | It has a method "getDetails()". This method returns "name" and "email_address". |
01:31 | Now, let us come to the Manager class. |
01:35 | It has variables, name, email_address and department. |
01:40 | We can see that some variables are common to both Employee and Manager class. |
01:47 | name and email_address are present in the Employee class. We can see that it is also there in Manager class. |
01:57 | Thus, Manager class can be made a subclass of Employee class. |
02:03 | For that, we have to make some changes in the Manager class. |
02:08 | After public class Manager, type: extends Employee. |
02:14 | We use the extends keyword to create a subclass from an existing class. |
02:21 | Remove the duplicate variables common to both the classes. |
02:26 | So, remove name and email_address from Manager class. |
02:32 | Also remove setter and getter methods of the same. |
02:37 | In the class 'Manager', we will have only one variable department. |
02:43 | We also have the setter and getter method for department. |
02:59 | In this way, the 'Manager' class inherits the members of 'Employee' class. |
02:55 | This way of extending one class from another is called single inheritance. |
03:02 | I have also created another class named 'TestEmployee'. |
03:08 | Inside the main method, we will create the object of Manager class. |
03:14 | So, inside the main method, type: Manager manager equal to new Manager parentheses. |
03:23 | Next, we will call the setter methods of the Manager class. |
03:28 | So, type, manager dot setName within brackets and double quotes Nikkita Dinesh |
03:38 | Then type: manager dot setEmail within brackets and double quotes abc at gmail dot com. |
03:49 | Then type, manager dot setDepartment within brackets and double quotes Accounts. |
03:57 | You can use any name, email address and department. |
04:02 | Now, let us call the getDetails() method using the Manager object. |
04:08 | So, type: System.out.println within brackets manager dot getDetails. |
04:17 | Now, let us save and run the program. |
04:21 | We can see that we get the output as:
Name: Nikkita Dinesh Email: abc@gmail.com |
04:30 | Here, the object of the 'Manager' class calls the getDetails() method. |
04:36 | Now, come to the Manager class. |
04:39 | We can see that there is no getDetails() method here. |
04:43 | But, we still got the output. This is because, the Manager class extends the Employee class. |
04:52 | The Manager class automatically inherits the variables and methods of Employee class. |
04:59 | So, it checks in the parent class which is Employee. |
05:04 | Let us come to the Employee class. It finds the getDetails() method here. |
05:11 | Note that we have not returned the department. As a result, it did not print the department in the output. |
05:20 | Now, let us change the getDetails method to private. Save the file. |
05:27 | We can see that we get a compilation error in the TestEmployee class. |
05:34 | It says "The method getDetails() from the type Employee is not visible". |
05:40 | This means that getDetails() method cannot be accessed. |
05:45 | This is because we have declared getDetails() method as 'private'. |
05:52 | A subclass does not inherit the private members of its superclass. |
05:58 | Subclass cannot directly access the private members of the superclass. |
06:04 | The superclass can have public or protected methods. |
06:09 | These methods can access their private fields. |
06:13 | The subclass can also access the private fields through these methods. |
06:18 | So, let us change it back to public. |
06:21 | Now, let us include the method getDetails in the Manager class. |
06:27 | This method will return name, email_address and department. |
06:33 | So, type: public String getDetails parentheses. |
06:39 | Inside the method, type: return within brackets Name plus getName() plus slash n plus Email plus getEmail() plus slash n plus Manager of plus getDepartment() semicolon. Save the file. |
07:07 | Note that now, we have the method getDetails in both 'Manager' and 'Employee' class. |
07:15 | The name, return type and argument list of the method is same in both the classes. |
07:22 | A method in the subclass is said to override the method in the parent class if:
match exactly. |
07:33 | Come back to the Manager class. |
07:36 | Before the getDetails() method, type: @Override. |
07:43 | This is an override annotation. It indicates that a method is intended to override a method in superclass. |
07:53 | Now, let us see what annotation is. |
07:57 | Annotations:
|
08:10 | If a method is annotated with @Override, compiler generates error if:
|
08:23 | * The method signature is different in its superclass. |
08:28 | Now, let us come back to the IDE. Come back to the Manager class. |
08:34 | The at (@) sign character indicates the compiler that what follows is an annotation. |
08:42 | Here, it shows that the getDetails() method is overridden. |
08:48 | Let us come to the TestEmployee class. |
08:51 | Save the file and run the program. |
08:55 | We get the output as follows:
Name: Nikkita Dinesh Email: abc@gmail.com Manager of Accounts |
09:05 | Here, the object of the Manager class calls the getDetails() method. |
09:11 | But this time, it calls the method of Manager class itself. |
09:16 | In this way, we override the method of the parent class by the subclass. |
09:23 | Let us summarize. In this tutorial, we have learnt about:
|
09:31 | As an assignment, create a class Vehicle which has a method run that prints “The Vehicle is running.” |
09:40 | Also create a class Bike which has a method run that prints “The Bike is running safely.” |
09:48 | The output should be “The Bike is running safely.” |
09:52 | To know more about the Spoken Tutorial Project, watch the video available at the following link. It summarizes the Spoken Tutorial project. If you do not have good bandwidth, you can download and watch it. |
10:06 | The Spoken Tutorial Project Team:
For more details, please write to contact at spoken hyphen tutorial dot org. |
10:21 | Spoken Tutorial Project is a part of the Talk to a Teacher project. It is supported by the National Mission on Education through ICT, MHRD, Government of India.
More information on this mission is available at: http://spoken-tutorial.org/NMEICT- Intro |
10:42 | This is Arya Ratish from IIT Bombay, signing off.
Thanks for joining. |