Java Questions & Answers – Inheritance – Abstract Class and Super

This section of our 1000+ Java MCQs focuses on Abstract class in Java Programming Language.

1. Which of these keywords are used to define an abstract class?
a) abst
b) abstract
c) Abstract
d) abstract class
View Answer

Answer: b
Explanation: None.

2. Which of these is not abstract?
a) Thread
b) AbstractList
c) List
d) None of the Mentioned
View Answer

Answer: a
Explanation: Thread is not an abstract class.

3. If a class inheriting an abstract class does not define all of its function then it will be known as?
a) abstract
b) A simple class
c) Static class
d) None of the mentioned
View Answer

Answer: a
Explanation: Any subclass of an abstract class must either implement all of the abstract method in the superclass or be itself declared abstract.

4. Which of these is not a correct statement?
a) Every class containing abstract method must be declared abstract.
b) Abstract class defines only the structure of the class not its implementation.
c) Abstract class can be initiated by new operator.
d) Abstract class can be inherited.
View Answer

Answer: c
Explanation: Abstract class cannot be directly initiated with new operator, Since abstract class does not contain any definition of implementation it is not possible to create an abstract object.

5. Which of these packages contains abstract keyword?
a) java.lang
b) java.util
c) java.io
d) java.system
View Answer

Answer: a
Explanation: None.

6. What is the output of this program?

  1.     class A {
  2.         public int i;
  3.         private int j;
  4.     }    
  5.     class B extends A {
  6.         void display() {
  7.             super.j = super.i + 1;
  8.             System.out.println(super.i + " " + super.j);
  9.         }
  10.     }    
  11.     class inheritance {
  12.         public static void main(String args[])
  13.         {
  14.             B obj = new B();
  15.             obj.i=1;
  16.             obj.j=2;   
  17.             obj.display();     
  18.         }
  19.    }

a) 2 2
b) 3 3
c) Runtime Error
d) Compilation Error
View Answer

Answer: d
Explanation: class contains a private member variable j, this cannot be inherited by subclass B and does not have access to it.
output:
$ javac inheritance.java
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The field A.j is not visible

7. What is the output of this program?

  1.     class A {
  2.         public int i;
  3.         public int j;
  4.         A() {
  5.             i = 1;
  6.             j = 2;
  7. 	}
  8.     }    
  9.     class B extends A {
  10.         int a;
  11. 	B() {
  12.             super();
  13.         } 
  14.     }    
  15.     class super_use {
  16.         public static void main(String args[])
  17.         {
  18.             B obj = new B();
  19.             System.out.println(obj.i + " " + obj.j)     
  20.         }
  21.    }

a) 1 2
b) 2 1
c) Runtime Error
d) Compilation Error
View Answer

Answer: a
Explanation: Keyword super is used to call constructor of class A by constructor of class B. Constructor of a initializes i & j to 1 & 2 respectively.
output:
$ javac super_use.java
$ java super_use
1 2

8. What is the output of this program?

  1.     abstract class A {
  2.         int i;
  3.         abstract void display();
  4.     }    
  5.     class B extends A {
  6.         int j;
  7.         void display() {
  8.             System.out.println(j);
  9.         }
  10.     }    
  11.     class Abstract_demo {
  12.         public static void main(String args[])
  13.         {
  14.             B obj = new B();
  15.             obj.j=2;
  16.             obj.display();    
  17.         }
  18.    }

a) 0
b) 2
c) Runtime Error
d) Compilation Error
View Answer

Answer: b
Explanation: class A is an abstract class, it contains a abstract function display(), the full implementation of display() method is given in its subclass B, Both the display functions are the same. Prototype of display() is defined in class A and its implementation is given in class B.
output:
$ javac Abstract_demo.java
$ java Abstract_demo
2

9. What is the output of this program?

  1.     class A {
  2.         int i;
  3.         void display() {
  4.             System.out.println(i);
  5.         }
  6.     }    
  7.     class B extends A {
  8.         int j;
  9.         void display() {
  10.             System.out.println(j);
  11.         }
  12.     }    
  13.     class method_overriding {
  14.         public static void main(String args[])
  15.         {
  16.             B obj = new B();
  17.             obj.i=1;
  18.             obj.j=2;   
  19.             obj.display();     
  20.         }
  21.    }

a) 0
b) 1
c) 2
d) Compilation Error
View Answer

Answer: c
Explanation: class A & class B both contain display() method, class B inherits class A, when display() method is called by object of class B, display() method of class B is executed rather than that of Class A.
output:
$ javac method_overriding.java
$ java method_overriding
2

10. What is the output of this program?

  1.     class A {
  2.         public int i;
  3.         protected int j;
  4.     }    
  5.     class B extends A {
  6.         int j;
  7.         void display() {
  8.             super.j = 3;
  9.             System.out.println(i + " " + j);
  10.         }
  11.     }    
  12.     class Output {
  13.         public static void main(String args[])
  14.         {
  15.             B obj = new B();
  16.             obj.i=1;
  17.             obj.j=2;   
  18.             obj.display();     
  19.         }
  20.    }

a) 1 2
b) 2 1
c) 1 3
d) 3 1
View Answer

Answer: a
Explanation: Both class A & B have member with same name that is j, member of class B will be called by default if no specifier is used. I contains 1 & j contains 2, printing 1 2.
output:
$ javac Output.java
$ java Output
1 2

Sanfoundry Global Education & Learning Series – Java Programming Language.

Subscribe Newsletter & Posts
About

Manish Bhojasia, a technology veteran with 17+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He is Linux Kernel Developer and SAN Architect and is passionate about competency developments in these areas. He lives in Bangalore and delivers focused training sessions to IT professionals in Linux Kernel, Linux Debugging, Linux Device Drivers, Linux Networking, Linux Storage & Cluster Administration, Advanced C Programming, SAN Storage Technologies, SCSI Internals and Storage Protocols such as iSCSI & Fiber Channel. Stay connected with him below.


Sanfoundry Training Center of Excellence (CoE)

Manish Bhojasia, a technology veteran with 17+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He is Linux Kernel Developer and SAN Architect and is passionate about competency developments in these areas. He lives in Bangalore and delivers focused training sessions to IT professionals in Linux Kernel, Linux Debugging, Linux Device Drivers, Linux Networking, Linux Storage & Cluster Administration, Advanced C Programming, SAN Storage Technologies, SCSI Internals and Storage Protocols such as iSCSI & Fiber Channel. Stay connected with him below.


1000 Java MCQs | Quiz

Integer and Floating Data Types
Character and Boolean Data Types
Literals & Variables
Type Conversions, Promotions and Castings
Arrays
Arithmetic Operators
Bitwise Operators
Relational Operators and Boolean Logic Operators
Assignment Operators and Operator Precedence
Control Statements
Class Fundamentals & Declaring objects
Introduction to Methods
Constructors & Garbage Collection
Overloading Methods & Argument Passing
Access Control
Arrays Revisited & Keyword static
String Class
Inheritance
Method overriding
The Object Class
String Handling Basics
Character Extraction
String Comparison
Searching & Modifying a String
StringBuffer class
StringBuffer Methods
Packages
Interfaces
Java.lang Introduction
Java.lang - Integer, Long And Character Wrappers
Java.lang - Void, Process and System Class
Java.lang - Object & Math Class
Java.io Introduction
Java.io Byte Streams
Java.io Character Streams
Serialization
Serialization & Deserialization
Networking Basics
URL class
HttpResponse & URLConnection Class
networking - Server, Sockets & httpd Class
networking - httpd.java Class
networking - Datagrams
Java.util - ArrayList Class
Java.util - LinkedList, HashSet & TreeSet Class
Java.util - Maps
Java.util - Array Class
Java.util - Vectors & Stack
Java.util - Dictionary, Hashtable & Properties
Java.util - BitSet & Date class
Methods Taking Parameters
Exceptional Handling Basics
Exceptions Types
Throw, Throws & Nested Try
isAlive(), Join() & Thread Synchronization
Implementing Runnable interface for Threads
Thread class
Multithreading Basics
Networking Basics
Finally & Built in Exceptions
Creating Threads
Input & Output Basics
Reading Console Input
Writing Console Output
Reading & Writing Files
Applets Fundamentals
Core Java API Packages
Remote Method Invocation (RMI)
Text Formatting
Event Handling Basics
ActionEvent & AdjustmentEvent Class
ComponentEvent, ContainerEvent & FocusEvent Class
MouseEvent, TextEvent & WindowEvent Class
Event Listeners Interfaces
Java.lang - Rounding Functions
Java.lang - Miscellaneous Math Methods & StrictMath Class
Java.lang - ThreadGroup class & Runnable Interface
Java.lang - System Class Advance
Java.lang - Double & Float Wrappers
Java.lang - Byte & Short Wrappers
Java.lang - Character Wrapper Advance
Java.lang - Boolean Wrapper Advance
Java.lang - Runtime & ClassLoader Classes
java.lang - Class
Collection Framework Overview
Collections Interface
Collection Algorithms
Iterators
Locale & Random Classes
Observable & Timer Class
Restrictions On Generics
Wildcards
Recursion
Command Line Arguments
Inheritance - Abstract Class and Super
Try & Catch
Creating Exceptions
Generics
Generic Methods
Type Interface
Follow Manish & Sanfoundry