Differences between abstract class and interface with example.

 Abstract class and interface both are used to achieve abstraction where we can declare the abstract methods. Abstract class and interface both can't be instantiated.

But there are many differences between abstract class and interface that are given below.

Abstract class

1) Abstract class can have abstract and non-abstract methods.

2) Abstract class doesn't support multiple inheritance.

3) Abstract class can have final, non-final, static and non-static variables.

4) Abstract class can provide the implementation of interface.

5) The abstract keyword is used to declare abstract class.

6) An abstract class can extend another Java class and implement multiple Java interfaces.

7) An abstract class can be extended using the keyword "extends".

8) A Java abstract class can have class members like private, protected, etc.

9)Example:

public abstract class Shape{

public abstract void draw();

}


Interface

1) Interface can have only abstract methods. Since Java 8, it can have default and static methods also.

2) Interface supports multiple inheritances.

3) Interface has only static and final variables.

4) Interface can't provide the implementation of abstract class.

5) The interface keyword is used to declare interface.

6) An interface can extend another Java interface only.

7) An interface can be implemented using keyword "implements".

8) Members of a Java interface are public by default.

9) Example:

public interface Drawable{

void draw();

}





Sample code for Interface and Abstract Class in Java

Following is sample code to create an interface and abstract class in Java

Interface Syntax

interface name{

//methods

}

Java Interface Example:

interface Pet {

    public void test();

}

class Dog implements Pet {

    public void test() {

        System.out.println("Interface Method Implemented");

    }

    public static void main(String args[]) {

        Pet p = new Dog();

        p.test();

    }

}


Abstract Class Syntax

abstract class name{

    // code

}

Abstract class example:

abstract class Shape {

    int b = 20;

    abstract public void calculateArea();

}


public class Rectangle extends Shape {

    public static void main(String args[]) {

        Rectangle obj = new Rectangle();

        obj.b = 200;

        obj.calculateArea();

    }

    public void calculateArea() {

        System.out.println("Area is " + (b * b));

    }

}

Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Discuss classification or taxonomy of virtualization at different levels.