Site icon UK Essayz

Object-Oriented Programming with Java

Object-Oriented Programming with Java 
(a) Give three differences between an interface and an abstract class in Java. [3 marks] 
(b) A novice programmer writes the following code in order to be able to completely clone an object of type Car. 
public class Tyre { private int treadRemaining; 
public void SetTread(int t) { treadRemaining=t; } 
public int GetTread() { return treadRemaining; } } 
public class Car extends Vehicle implements Cloneable { private Tyre tyres[] = new Tyre[4]; 
public Car() { for (int i=0; i<4; i++) tyres[i] = new Tyre(); }  public Object clone() throws CloneNotSupportedException { Car c = new Car();  c.tyres = this.tyres; return c; } }  (i) Explain what it means for the treadRemaining field to be private. Explain why it is good programming practice for such fields to be private. [3 marks]  (ii) Identify the type of interface that Cloneable is. What is the defining characteristic of such interfaces? [2 marks]  (iii) Identify and explain two reasons why this code may not function as intended. [4 marks]  (iv) Rewrite the code to address the problems you have identified and allow Car objects to be fully cloned. [8 marks] 1