Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

DAVID - LAB Excercise 7

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 8

INFORMATION TECHNOLOGY EDUCATION DEPARTMENT

ITPROG3
(Object Oriented Programming)

EXERCISE

7
Dealing with Polymorphism and Inheritance
I. Objectives:

At the end of the experiment, students must be able to:

Cognitive
a) understand the effects of access modifiers in an inheritance relationship
b) understand the concept of Java abstract Classes

Psychomotor:
a) construct a program using 'extends' keyword to define an inheritance relationship
b) compile and debug the error of the program

Affective
a) appreciate the concept behind this experiment

II. BACKGROUND INFORMATION

Polymorphism is the ability of different objects to respond to the same message in different
ways. This means that different objects can have very different method implementations for
the same message.

Method Overloading is the process of declaring methods with the same name but different
parameter types.

Method Overriding allows a subclass to redefine methods of the same name from a
superclass

III. EXPERIMENTAL PROCEDURE:

1. Create an interface named Comparison whose method can be used to compare


two
Time objects. The methods will include isGreater, isLess, and isEqual.

2. 2.1. Create class Person with attributes name, age and gender.
2.2. Create class Student with attribute grade and,
2.3. Create class Teacher with attribute salary.
Note:
Class Student and Teacher must inherit from Person.
In main class, create and print two students and one teacher.
Apply inheritance, setter and getter.

Sample Output:
Student 2:
Name: Rachel
Age: 15
Gender: F
Grade: 2.50
3. Give a definition of a class named Arithmetic whose methods are three add() and multiply()
and one subtract() and divide().

 Parameter for add() and multiply() should be two, three and four int respectively.
 Parameter for subtract() and divide() should be two int.
 Applying method calling in the main(), test your program by calling the following
methods:

add(1,3)

add(1,3,4,5)

multiply(2,3,4)

multiply(1,1)

subtract(3,1)

divide(5,2)

1.

2.
package main;
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("DATABASE");
System.out.println(" ");
System.out.println("1. Teacher");
System.out.println("2. Student");

System.out.print("Choice: ");
Scanner scan = new Scanner(System.in);
int choice = scan.nextInt();

System.out.println(" ");

if(choice == 1){
Teacher x;
x = new Teacher();

System.out.print("Name: ");
Scanner scann = new Scanner(System.in);
x.name = scann.nextLine();
System.out.println(" ");
System.out.print("Age: ");
Scanner scan2 = new Scanner(System.in);
x.age = scan2.nextInt();
System.out.println(" ");

System.out.print("Gender: ");
Scanner scan3 = new Scanner(System.in);
x.gend = scan3.next().charAt(0);
System.out.println(" ");

System.out.print("Salary: " + x.salary);


System.out.println(" ");

else if(choice == 2){


Student y;
y = new Student();

System.out.print("Name: ");
Scanner scann = new Scanner(System.in);
y.name = scann.nextLine();
System.out.println(" ");

System.out.print("Age: ");
Scanner scan2 = new Scanner(System.in);
y.age = scan2.nextInt();
System.out.println(" ");

System.out.print("Gender: ");
Scanner scan3 = new Scanner(System.in);
y.gend = scan3.next().charAt(0);
System.out.println(" ");

System.out.print("Grade: " + y.grade);


System.out.println(" ");

else{
System.out.println("Invalid Input");
}

}
}
---------------------------------------
package main;
public class Teacher extends Person{

public void setName(String Brand)


{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void setGend(char gend)
{
this.gend = gend;
}
public void setSalary(double salary)
{
this.salary = salary = 10000;
}

public String getName(String name)


{
return this.name;
}
public int getAge(int age)
{
return this.age;
}
public char getGend(char gend)
{
return this.gend;
}
public double getSalary(double salary)
{
return this.grade;
}

}
--------------------------------
package main;
public class Student extends Person{

public void setName(String Brand)


{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public void setGend(char gend)
{
this.gend = gend;
}
public void setGrade(double grade)
{
this.grade = grade = 2.0;
}

public String getName(String name)


{
return this.name;
}
public int getAge(int age)
{
return this.age; }

public char getGend(char gend)


{
return this.gend;
}
public double getgrade(double grade)
{
return this.grade;
}

}
------------------------------------
package main;
public class Person {

String name;
int age;
char gend;
double grade = 2.0;
double salary = 10000;
}
-------------------------------------
OUTPUT:

3.
package num2;

public class ClassOne {


public int add(int num1,int num2){
return(num1+num2);
}
public int add(int num1,int num2,int num3,int num4){
return(num1+num2+num3+num4);
}
public int multiply(int num1,int num2,int num3){
return(num1*num2*num3);
}
public int multiply(int num1,int num2){
return(num1*num2);
}
public int subtract(int num1,int num2){
return(num1-num2);
}
public float divide(float num1,float num2){
return(num1/num2);
}
}

----------------------------

package num2;

public class Arithmethic {


public static void main(String[] args) {
ClassOne classOne = new ClassOne();
System.out.println("1 + 3 = "+classOne.add(1,3));
System.out.println("1 + 3 + 4 + 5 = "+classOne.add(1,3,4,5));
System.out.println("2 * 3 * 4 = "+classOne.multiply(2,3,4));
System.out.println("1 * 1 = "+classOne.multiply(1,1));
System.out.println("3 - 1 = "+classOne.subtract(3,1));
System.out.println("5 / 2 = "+classOne.divide(5,2));
}
}

OUTPUT:
IV. QUESTION AND ANSWER:

1. Consider the following two classes:


public class ClassA {
public void methodOne(int i) {
}
public void methodTwo(int i) {
}
public static void methodThree(int i) {
}
public static void methodFour(int i) {
}
}

public class ClassB extends ClassA {


public static void methodOne(int i) {
}
public void methodTwo(int i) {
}
public void methodThree(int i) {
}
public static void methodFour(int i) {
}
}
a. Which method overrides a method in the superclass?
MethodTwo

b. Which method hides a method in the superclass?


MethodFour

c. What do the other methods do?


They cause compile-time errors.

You might also like