Skip to main content

Difference between Abstract Class and Interface


Difference between Abstract Class and Interface

Difference between abstract class and interface ?

Abstract Class:-

1) Can have abstract and non-abstract method both.
2) One class can extend at most one class.
3) can declare non abstract method and also can define body for it.


Interface:-
1) can have only abstract method.
2) One class can implement multiple interfaces.
3) can't delare body to a method.

Please look below example for more understanding:-



package Basics;

public abstract class Animal {

 int  head;
 //no body (unimplemented function need to override in child class as a
 //compulsion
 abstract void setLegs();
 
 //having body
 //may override or may not
 void setHead()
 {
  head=1;
 }
 
 
 
}


package Basics;

// can have only methods and by default all are abstract need to be override
//by implementing class, unlike abstract no method can havedefinition
public interface Pet {

 void tellWhereAreYouFrom(String place);
 String tellYourWeight(String weight);
 
}

package Basics;


// can extend one class but can implement multiple interface
public class Dog extends Animal implements Pet{

 //must override all abstract methods from Parent class
 @Override
 void setLegs() {
  
  System.out.println("i have four legs");
  
 }

 //must override all methods from an interface
 @Override
 public void tellWhereAreYouFrom(String place) {
  System.out.println("My place is"+place);
  
 }

 @Override
 public String tellYourWeight(String weight) {
  
  return weight;
 }

}

Comments

.

Popular posts from this blog

Driver program to perform operations in graph

Driver program to perform operations in graph:-



package com.problems.graph;publicclassGraphDriver{publicstaticvoidmain(String[] args){ BFSGraph g=new BFSGraph(); g.addVertex('A'); g.addVertex('B'); g.addVertex('C'); g.addVertex('D'); g.addVertex('E'); g.addVertex('F'); g.addVertex('G'); g.addVertex('H'); g.addEdge(0,1); g.addEdge(1,2); g.addEdge(1,7); g.addEdge(2,3); g.addEdge(2,4); g.addEdge(7,4); g.addEdge(4,5); g.addEdge(4,6); g.bfs();}}

Shortest Path from source to Vertex :- Dijkstra Algorithm

Shortest Path from source to Vertex :- Dijkstra Algorithm:-

Dijkstra Algorithms is an algorithm use to find the shortest path from source vertex to a given vertex.



package Graph;importjava.util.HashMap;abstractpublicclassDirectedGraph{ Vertex[] vertexlist=new Vertex[10]; HashMap<Character,HashMap<Character,Integer>> edgelist=new HashMap<>(); Vertex vertex;//count of vertex and edgestaticint vertexcount=0;int edgecount=0;/* * This function takes a label and insert in the vertex list as well as edge list since it is new vertex it will add * null to its adjoining vertices */intaddVertex(char label){ vertex=new Vertex(label); vertexlist[vertexcount]=vertex; System.out.println(vertexlist[vertexcount].label); edgelist.put(vertex.label,null); vertexcount++;return vertexcount;}intaddEdge(char label,char[] labels,int[] distances){ HashMap<Character,Integer> vertexlist=new HashMap<>();for(int i=0;i<labels.length;i++){ vertexlist.put(labels[i],…