0% found this document useful (0 votes)
2 views

oops

The document provides a comprehensive overview of Object-Oriented Programming (OOP) concepts, including definitions of classes, objects, encapsulation, inheritance, polymorphism, and various types of inheritance. It explains the differences between function overloading and overriding, as well as the roles of abstract classes and interfaces. Additionally, it covers access specifiers, data abstraction, and the importance of OOP in simplifying complex programming tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

oops

The document provides a comprehensive overview of Object-Oriented Programming (OOP) concepts, including definitions of classes, objects, encapsulation, inheritance, polymorphism, and various types of inheritance. It explains the differences between function overloading and overriding, as well as the roles of abstract classes and interfaces. Additionally, it covers access specifiers, data abstraction, and the importance of OOP in simplifying complex programming tasks.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

1.

What is object oriented programming :


OOP Can be described with following concepts :

• Follows bottom up approach.


• Emphasis is on data.
• Programs are divided into objects.

• Functions and data are bound together.


• Communication is done through objects.
• Data is hidden.

2. What is a class?
Class is an entity which consists of member data and member functions which operate
on the member data bound together.

3. What is an object?
Objects are instances of classes. Class is a collection of similar kind of objects. When a
class is created it doesn’t occupy any memory, but when instances of class is created i.e.,
when objects are created they occupy memory space.

4. What is encapsulation?
A1. Encapsulation is welding of code and data together into objects.

5. What is inheritance?
A2. Inheritance is a mechanism through which a subclass inherits the properties and
behavior of its superclass. The derived
class inherits the properties and method implementations of the base class and extends
it by overriding methods and adding additional properties and methods.

6. What is polymorphism?
A3. In Greek this means "many shapes."As a consequence of inheritance and virtual
functions, a single task (for example, drawing
a geometrical shape) can be implemented using the same name (like draw()) and
implemented differently (via virtual functions) as each type in object hierarchy
requires(circle.draw() or rectangle.draw()). Later, when a polymorphic object (whose
type is not known at compile time) executes the draw() virtual function, the correct
implementation is chosen andexecuted at run time.
7. What is the difference between function overloading and function overriding?
A. Overloading is a method that allows defining multiple member functions with the
same name but different signatures. The compiler will pick the correct function based
on the signature. Overriding is a method that allows the derived class to redefine the
behavior of member functions which the derived class inherits from a base class. The
signatures of both base class member function and derived class member function are
the same; however, the implementation and, therefore, the behavior will differ

8. What are the advantages of OOP?

• Data hiding helps create secure programs.


• Redundant code can be avoided by using inheritance.
• Multiple instances of objects can be created.
• Work can be divided easily based on objects.
• Inheritance helps to save time and cost.

• Easy upgrading of systems is possible using object oriented systems.

9. Explain about the virtual task and methods .

Virtual tasks and functions are the ways to achieve the polymorphism in system verilog.
Try to fun the following example and see it will help you understand the concept.

class base ;
virtual function int print;
$display("INSIDE BASE \n");
endfunction : print
endclass : base

class derived extends base;


function int print;
$display("INSIDE DERIVED \n");
endfunction : print
endclass : derived

program test ;

derived d1;
initial
begin
d1 = new();
d1.print();
callPrint (d1);
end

task callPrint (base b1);


$display("Inside callPrint \n");
b1.print;
endtask : callPrint

endprogram

10.What is the use of the abstract class?

A virtual class is a temple or place holder for the child classes. A virtual class is
also called as the abstract class. A virtual class is declared with a virtual keyword
like :
virtual class base;

endclass;
A virtual class instance or object can not be constucted but you can define the
hadle to the virtual class.
A virtual class is a temple or place holder for the child classes. A virtual class is also
called as the abstract class. A virtual class is declared with a virtual keyword like :
virtual class base;
virtual task1;
endtask;
virtual task2;
endtask;
endclass;

A virtual class instance or object can not be constucted but you can define the hadle to
the virtual class.
virtual class baseframe;
...
virtual function void iam();
endfunction
...
endclass
class shortframe extends baseframe;
...
function void iam();
$display ("Short Frame");
endfunction
endclass

class longframe extends baseframe;


...
function void iam();
$display ("Long Frame");
endfunction
endclass

baseframe two; // OK

initial begin
two = new(4); // ERROR
...

11.Why use OOPs?


• OOPs allows clarity in programming thereby allowing simplicity in solving
complex problems

• Code can be reused through inheritance thereby reducing redundancy


• Data and code are bound together by encapsulation
• OOPs allows data hiding, therefore, private data is kept confidential
• Problems can be divided into different parts making it simple to solve

• The concept of polymorphism gives flexibility to the program by allowing the


entities to have multiple forms
12.What is an object?
An object is a real-world entity which is the basic unit of OOPs for example chair, cat,
dog, etc. Different objects have different states or attributes, and behaviors.

13. What is a class?


A class is a prototype that consists of objects in different states and with different
behaviors. It has a number of methods that are common the objects present within that
class.

14.What is the difference between a class and a structure?


Class: User-defined blueprint from which objects are created. It consists of methods or
set of instructions that are to be performed on the objects.
Structure: A structure is basically a user-defined collection of variables which are of
different data types.
15. Can you call the base class method without creating an instance?
Yes, you can call the base class without instantiating it if:
• It is a static method

• The base class is inherited by some other subclass


16. What is the difference between a class and an object?

Object Class

A class is basically a template or a


A real-world entity which is an instance of
blueprint within which objects can be
a class
created

Binds methods and data together into a


An object acts like a variable of the class
single unit

An object is a physical entity A class is a logical entity

Objects take memory space when they are A class does not take memory space when
created created

Objects can be declared as and when


Classes are declared just once
required

17.What is inheritance?
Inheritance is a feature of OOPs which allows classes inherit common properties from
other classes. For example, if there is a class such as ‘vehicle’, other classes like ‘car’,
‘bike’, etc can inherit common properties from the vehicle class. This property helps you
get rid of redundant code thereby reducing the overall size of the code.
18. What are the different types of inheritance?

• Single inheritance
• Multiple inheritance
• Multilevel inheritance
• Hierarchical inheritance
• Hybrid inheritance

19. What is the difference between multiple and multilevel inheritance?

Multiple Inheritance Multilevel Inheritance

Multiple inheritance comes into picture Multilevel inheritance means a class


when a class inherits more than one base inherits from another class which itself is a
class subclass of some other base class

Example: A class describing a sports car


Example: A class defining a child inherits
will inherit from a base class Car which
from two base classes Mother and Father
inturn inherits another class Vehicle

14. What is hybrid inheritance?


Hybrid inheritance is a combination of multiple and multi-level inheritance.
14. What is hierarchical inheritance?
Hierarchical inheritance refers to inheritance where one base class has more than one
subclasses. For example, the vehicle class can have ‘car’, ‘bike’, etc as its subclasses.

15. What are the limitations of inheritance?


• Increases the time and effort required to execute a program as it requires
jumping back and forth between different classes
• The parent class and the child class get tightly coupled

• Any modifications to the program would require changes both in the parent as
well as the child class
• Needs careful implementation else would lead to incorrect results
16. What is a superclass?
A superclass or base class is a class that acts as a parent to some other class or classes.
For example, the Vehicle class is a superclass of class Car.
17.What is a subclass?
A class that inherits from another class is called the subclass. For example, the class Car
is a subclass or a derived of Vehicle class.
18.What is polymorphism?
Polymorphism refers to the ability to exist in multiple forms. Multiple definitions can
be given to a single interface. For example, if you have a class named Vehicle, it can have
a method named speed but you cannot define it because different vehicles have
different speed. This method will be defined in the subclasses with different definitions
for different vehicles.
19. What is static polymorphism?

Static polymorphism (static binding) is a kind of polymorphism that occurs at compile


time. An example of compile-time polymorphism is method overloading.
20. What is dynamic polymorphism?
Runtime polymorphism or dynamic polymorphism (dynamic binding) is a type of
polymorphism which is resolved during runtime. An example of runtime
polymorphism is method overriding.
21. What is method overloading?
Method overloading is a feature of OOPs which makes it possible to give the same name
to more than one methods within a class if the arguments passed differ.
22. What is method overriding?
Method overriding is a feature of OOPs by which the child class or the subclass can
redefine methods present in the base class or parent class. Here, the method that is
overridden has the same name as well as the signature meaning the arguments passed
and the return type.
23. What is operator overloading?
Operator overloading refers to implementing operators using user-defined types based
on the arguments passed along with it.

24. Differentiate between overloading and overriding.

Overloading Overriding

Two or more methods having the same Child class redefining methods present in
name but different parameters or the base class with the same parameters/
signature signature

Resolved during compile-time Resolved during runtime

25. What is encapsulation?

Encapsulation refers to binding the data and the code that works on that together in a
single unit. For example, a class. Encapsulation also allows data-hiding as the data
specified in one class is hidden from other classes.
26. What are ‘access specifiers’?
Access specifiers or access modifiers are keywords that determine the accessibility of
methods, classes, etc in OOPs. These access specifiers allow the implementation of
encapsulation. The most common access specifiers are public, private and protected.
However, there are a few more which are specific to the programming languages.
27. What is the difference between public, private and protected access
modifiers?

Accessibility from Accessibility from Accessibility from


Name
own class derived class world

Public Yes Yes Yes

Private Yes No No

Protected Yes Yes No

28. What is data abstraction?


Data abstraction is a very important feature of OOPs that allows displaying only the
important information and hiding the implementation details. For example, while
riding a bike, you know that if you raise the accelerator, the speed will increase, but you
don’t know how it actually happens. This is data abstraction as the implementation
details are hidden from the rider.
29. How to achieve data abstraction?
Data abstraction can be achieved through:
• Abstract class

• Abstract method
30. What is an abstract class?
An abstract class is a class that consists of abstract methods. These methods are
basically declared but not defined. If these methods are to be used in some subclass,
they need to be exclusively defined in the subclass.
Can you create an instance of an abstract class?
No. Instances of an abstract class cannot be created because it does not have a complete
implementation. However, instances of subclass inheriting the abstract class can be
created.
32. What is an interface?
It is a concept of OOPs that allows you to declare methods without defining them.
Interfaces, unlike classes, are not blueprints because they do not contain detailed
instructions or actions to be performed. Any class that implements an interface defines
the methods of the interface.
33. Differentiate between data abstraction and encapsulation.

Data abstraction Encapsulation

Solves the problem at the implementation


Solves the problem at the design level
level

Allows showing important aspects while Binds code and data together into a single
hiding implementation details unit and hides it from the world

What are virtual functions?


Virtual functions are functions that are present in the parent class and are overridden
by the subclass. These functions are used to achieve runtime polymorphism.
35. What are pure virtual functions?
Pure virtual functions or abstract functions are functions that are only declared in the
base class. This means that they do not contain any definition in the base class and
need to be redefined in the subclass.

36. What is a constructor?


A constructor is a special type of method that has the same name as the class and is
used to initialize objects of that class
37 Differentiate between a class and a method.

Class Method

A class is basically a template that binds


Callable set of instructions also called a
the code and data together into a single
procedure or function that are to be
unit. Classes consist of methods,
performed on the given data
variables, etc

38. Differentiate between an abstract class and an interface?

Basis for comparison Abstract Class Interface

Can have abstract as well as


Methods Only abstract methods
other methods

May contain final and non- Variables declared are final


Final Variables
final variables by default
Accessibility of Data
Can be private, public, etc Public by default
Members

Can provide the Cannot provide the


Implementation implementation of an implementation of an
interface abstract class

39. What is a final variable?


A variable whose value does not change. It always refers to the same object by the
property of non-transversity.

You might also like