package inheritance;
public class MouseTest5 {
public static void main(String[] args) {
Mouse[] arr = new Mouse[3]; //참조자료형
arr[0] = new Mouse();
arr[1] = new WheelMouse();
arr[2] = new OpticalMouse();
for(int i=0;i<arr.length;i++) {
if(arr[i] instanceof WheelMouse) {
System.out.println("WheelMouse 타입 입니다.");
}else if(arr[i] instanceof OpticalMouse){
System.out.println("OpticalMouse 타입 입니다");
}else {
System.out.println("Mouse 타입입니다");
}
}
for(int i =0; i<arr.length; i++) {
if(arr[i].getClass().equals(Mouse.class)) {
System.out.println("Mouse 타입입니다");
}else if(arr[i].getClass().equals(WheelMouse.class)) {
System.out.println("WheelMouse 타입 입니다.");
}else if(arr[i].getClass().equals(OpticalMouse.class)) {
System.out.println("OpticalMouse 타입 입니다.");
}
}
}
}
package inheritance;
public class MouseTest4 {
public static void main(String[] args) {
Mouse[] arr = new Mouse[3]; //참조자료형
arr[0] = new Mouse();
arr[1] = new WheelMouse();
arr[2] = new OpticalMouse();
for(int i=0;i<arr.length;i++) {
if(arr[i] instanceof WheelMouse) {
((WheelMouse)arr[i]).scroll(); //같은 인스턴스타입만 형변환이 가능하다.
}
}
}
}
package inheritance;
public class MouseTest3 {
public static void main(String[] args) {
Mouse[] arr = new Mouse[3]; //참조자료형
arr[0] = new Mouse();
arr[1] = new WheelMouse();
arr[2] = new OpticalMouse();
for(int i=0;i<3;i++) {
arr[i].clickLeft();
arr[i].clickRight();
}
}
}
package inheritance;
public class MouseTest2 {
public static void main(String[] args) {
MouseTest2 mt = new MouseTest2(); //static 때문에 클래스이름으로 객체생성을 해줘야한다.
Mouse m = new Mouse();
WheelMouse wm = new WheelMouse();
OpticalMouse om = new OpticalMouse();
mt.testMouse(om); //자식클래스를 매개변수로 넣어도 실행이 된다.
}
public void testMouse(Mouse m /*= new OpticalMouse()*/){
m.clickLeft();
m.clickRight();
}
}
package inheritance;
public class MouseTest {
public static void main(String[] args) {
Mouse m = new Mouse();
WheelMouse wm = new WheelMouse();
OpticalMouse om = new OpticalMouse();
//Mouse om2 = new OpticalMouse();
m.clickLeft();
m.clickRight();
om.clickLeft();
om.clickRight();
wm.scroll();
wm.clickLeft();
wm.clickRight();
// om2.clickLeft(); //자식클래스의 메서드가 실행된다.
// om2.clickRight();
}
}
package inheritance;
public class OpticalMouse extends Mouse{
public void clickLeft(){
System.out.println("광센서로 왼쪽 클릭");
}
public void clickRight() {
System.out.println("광센서로 오른쪽 클릭");
}
}
package inheritance;
public class WheelMouse extends Mouse{
public void scroll() {
System.out.println("스크롤 기능 추가");
}
}
package inheritance;
public class Mouse {
public void clickLeft(){
System.out.println("왼쪽클릭");
}
public void clickRight() {
System.out.println("오른쪽클릭");
}
}