Skip to content

Instantly share code, notes, and snippets.

@MykolaBova
Created October 1, 2016 16:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MykolaBova/5083489cd0c96f433fdd163ea237c262 to your computer and use it in GitHub Desktop.
Save MykolaBova/5083489cd0c96f433fdd163ea237c262 to your computer and use it in GitHub Desktop.
class Cast {
public static void main(String[] args) {
Object obj = "abcd";
String str = (String) obj;
Object obj2 = new Integer(10);
// java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
///String str2 = (String) obj2;
Object obj3 = new Object();
// java.lang.Object cannot be cast to java.lang.String
///String str3 = (String) obj3;
Car myCar = new SportCar();
SportCar myCar2 = (SportCar) myCar;
// java.lang.ClassCastException: SportCar cannot be cast to Truck
/// Truck myCar3 = (Truck) myCar;
}
}
class Car {
protected int speedMax = 100;
private long id;
public Car(long id, int speedMax) {
this.id = id;
this.speedMax = speedMax;
}
public Car() {
}
@Override
public int hashCode() {
int result = (int) (id ^ (id >>> 32));
result = 31 * result + speedMax;
return result;
}
@Override
public boolean equals(Object o) {
if(this == o) return true;
if(o == null || getClass() != o.getClass()) return false;
Car car = (Car) o;
if(id != car.id) return false;
return true;
}
public int getSpeedMax() {
return speedMax;
}
@Override
public String toString() {
return "My name is car.";
}
public Car getNewCar() {
return new Car();
}
public void move() {
System.out.println("Car move.");
}
}
class Truck extends Car {
@Override
public void move() {
System.out.println("Truck move.");
}
}
class SportCar extends Car {
protected int speedMax = 300;
public SportCar(long id, int speedMax) {
super(id, speedMax);
}
public SportCar() {
}
public int getSpeedMax() {
return speedMax;
}
@Override
public String toString() {
return super.toString() + "Sport car.";
}
public void testSuper() {
System.out.println(super.speedMax);
System.out.println(this.speedMax);
}
@Override
public SportCar getNewCar() {
return new SportCar();
}
@Override
public void move() {
System.out.println("Sport car move.");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment