java 抽象的打印機類Printer,抽象父類和具體子類。

這裏寫一個子類調用父類的例子加深子類和父類的關係
這是類的關係
在這裏插入圖片描述
這是demo,用來運行方法和使程序交互性更強

package printer;
/*
 測試類
 */
import java.util.Scanner;

public class Printerdemo {
    

    public static void main(String[] args) {
	while (true) {
	    System.out.println("-----------歡迎進入您的虛擬打印機-----------");
	    System.out.println("請選擇你要打印的照片 ");
	    System.out.println("1.一寸證件照");
	    System.out.println("2.兩寸證件照");
	    System.out.println("3.關閉打印機");

	    Scanner sc = new Scanner(System.in);
	    String line = sc.nextLine();
	    Printer c = new Colorprinter();
	    // 利用switch語句調用展示方法和進行功能操作的switch語句
	    switch (line) {
	    case "1": {
		// 展示
		System.out.println("請選擇你要打印的顏色");
		System.out.println("1.彩色");
		System.out.println("2.黑白色");

		// 功能的操作
		String function = sc.nextLine();
		switch (function) {
		case "1": {
		    c.setColor("彩色");
		    c.print();
		    break;
		}
		case "2": {

		    c.setColor("黑白色");
		    c.print();
		    break;
		}
		default:
		    System.out.println("對不起您輸入的信息有誤,請重新輸入");
		    break;
		}
		break;
	    }
	    case "2": {
		// 展示
		System.out.println("請選擇你要打印的顏色");
		System.out.println("1.彩色");
		System.out.println("2.黑白色");

		// 功能的操作
		String function = sc.nextLine();
		switch (function) {
		case "1": {
		    c.setColor("彩色");
		    c.print();
		    break;
		}
		case "2": {

		    c.setColor("黑白色");
		    c.print();
		    break;
		}
		default:
		    System.out.println("對不起您輸入的信息有誤,請重新輸入");
		    break;
		}
		break;
	    }
	    case "3": {
		// 直接結束系統運行
		System.out.println("已關閉打印機");
		System.exit(0);
	    }
	    default:
		System.out.println("您輸入的信息有誤,請重新輸入");
		break;
	    }
	}

    }
	
    

}

這是父類,定義了color的屬性和一個抽象方法抽象類,用來繼承給子類,abstract就是抽象的關鍵詞,用來定義沒有功能的方法,這裏要說一下,抽象類裏邊可以有具體的方法,也可以沒有抽象的方法,但是,具體的類裏邊不能有抽象的方法。

package printer;
/*
 定義printer父類
 */
public abstract class Printer {
    public String color;

    public String getColor() {
	return color;
    }

    public void setColor(String color) {
	this.color = color;
    }

    public abstract void print();

}

這是子類,繼承了父類裏邊所有的屬性。注意這裏我的color是public的,如果是private的就不能繼承到子類裏了。

package printer;
/*
 定義子類重寫print方法
 */
public class Colorprinter extends Printer {

    @Override
    public void print() {

	// TODO Auto-generated method stub
	if (getColor() == "彩色") {
	    System.out.println("你成功打印出了一張彩色照片");
	} else if (getColor() == "黑白色") {
	    System.out.println("你成功打印出了一張黑白照片");
	}
    }

}

接下來是效果的演示
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章