# GATE2005-4

2.3k views

Which one of the following are essential features of an object-oriented programming language?

1. Abstraction and encapsulation

2. Strictly-typedness

3. Type-safe property coupled with sub-type rule

4. Polymorphism in the presence of inheritance

1. I and II only
2. I and IV only
3. I, II and IV only
4. I, III and IV only

B

There have been several attempts at formalizing the concepts used in object-oriented programming. The following concepts and constructs have been used as interpretations of OOP concepts:

ans b)
ans should be B

object-oriented programming language is object based programming language +abstration+inheritance.

for any OOP language ABSTRACTION and INHERITANCE are compulsory.

Type safety is the extent to which a programming language discourages or prevents type errors. A type error is erroneous or undesirable program behaviour caused by a discrepancy between differing data types for the program's constants, variables, and methods (functions), e.g., treating an integer (int) as a floating-point number (float).

https://stackoverflow.com/questions/805168/what-is-a-strictly-typed-language

Hence, II and III are clearly not essentials.

I & IV on the other hand form an OOPs language.

1 vote

Ans: B it completes the three pillars of oops

## Related questions

1
3.3k views
A common property of logic programming languages and functional languages is: both are procedural languages both are based on $\lambda$-calculus both are declarative both use Horn-clauses
double foo(int n) { int i; double sum; if(n == 0) { return 1.0; } else { sum = 0.0; for(i = 0; i < n; i++) { sum += foo(i); } return sum; } } Suppose we modify the above function $foo()$ ... modification the time complexity for function $foo()$ is significantly reduced. The space complexity of the modified function would be: $O(1)$ $O(n)$ $O(n^2)$ $n!$