| Prev | Next |
Quiz - 4
This quiz tests your knowledge of Java language semantics. Get a print out of this when you come to the class.
- First try answering without running the program.
- Then run the program to check if your understanding was indeed correct.
- Enter both the answers in the last column and submit.
| Concept | Program | Your answer first, followed by the actual answer |
| Interface defines method with body |
// N.java
public interface N {
public void greet() {
System.out.println("N");
}
}
|
|
| Implementation of partial methods of an interface |
// O.java
public interface O {
public void m1();
public void m2();
}
// OI.java
public class OI implements O {
public void m1() {
System.out.println("Implements m1");
}
// m2() not implemented by OI
}
|
|
| Instantiating interface |
// P.java
public interface P {
public void m();
}
// PTest.java
public class PTest {
public static void main(String[] args) {
P p = new P();
}
}
|
|
| Declaring constructor in an interface |
// Q.java
public interface Q {
public Q();
}
|
|
| Defining instance attributes in an interface |
// R.java
public interface R {
public int x;
}
|
|
| Defining static attributes in an interface |
// S.java
public interface S {
public static int x;
}
// STest.java
public class RTest {
public static void main(String[] args) {
S.x = 5;
System.out.println(S.x);
}
}
|
|
| Assigning implementation type to an interface type |
// T.java
public interface T {
public void print();
}
// TI.java
public class TI implements T {
public void print() {
System.out.println("TI");
}
}
// TTest.java
public class TTest {
public static void main(String[] args) {
T t = new TI();
t.print();
}
}
|
|
| Extending interface |
// U.java
public interface U {
public void m1();
}
// UX.java
public interface UX extends U {
public void m2();
}
// UTest.java
public class UTest {
public static void main(String[] args) {
public void m1() {
System.out.println("m1");
}
public void m2() {
System.out.println("m2");
}
}
}
|
|
| Implementing multiple interfaces |
// VA.java
public interface VA {
public void ma();
}
// VB.java
public interface VB {
public void mb();
}
// VI.java
public class VI implements VA, VB {
public void ma() {
System.out.println("VA -> ma()");
}
public void mb() {
System.out.println("VB -> mb()");
}
}
// VTest.java
public class VTest {
public static void main(String[] args) {
VI vi = new VI();
vi.ma();
vi.mb();
}
}
|
|
| Clash in methods of multiple interfaces while implementing |
// WA.java
public interface WA {
public void m();
}
// WB.java
public interface WB {
public void m();
}
// WI.java
public class WI implements WA, WB {
public void m() {
System.out.println("WA -> m()");
}
}
// WTest.java
public class WTest {
public static void main(String[] args) {
VW wi = new WI();
wi.m();
}
}
|
|
| Abstract class |
// X.java
public abstract class X {
protected int x;
public x() { x = 1; }
public abstract void set(int x);
public void print() {
System.out.println(x);
}
}
// XX.java
public class XX extends X {
public void set(int x) {
super.x = x; // OR this.x = x;
}
}
// XTest.java
public class XTest {
public static void main(String[] args) {
X x = new XX();
x.print();
x.set(5);
x.print();
}
}
|
|
| Abstract constructor |
// Y.java
public abstract class Y {
public int x;
public abstract Y();
}
// YX.java
public class YX {
public YX() {
this.x = x; // OR super.x = x;
}
}
// YTest.java
public class YTest {
public static void main(String[] args) {
Y y = new YX();
}
}
|
|
| Instantiating abstract class |
// Z.java
public abstract class Z {
protected int x;
public abstract void print();
}
// ZTest.java
public class ZTest extends Z {
public static void main(String[] args) {
Z x = new Z();
}
}
|