第一題:
答案:
class Animal{//成員變量protected String name;protected int weight;//構造方法public Animal(){this.name="refer";this.weight=50;}public Animal(String name,int weight){this.name=name;this.weight=weight;}//成員方法public void show(){System.out.println("名字:"+this.name+" 體重:"+this.weight);}
}
class Dog extends Animal{//成員變量private String color;//構造方法public Dog(String name,int weight){super(name,weight); //實例化的時候要先初始化父類color="yellow";}//成員方法public void show(){ //重寫,返回值類型,方法名,形參全部相同,且子類訪問限制符要大于等于父類訪問限制符System.out.println("名字:"+this.name+" 體重:"+this.weight+" 顏色:"+this.color);}
}
public class P7_1 {public static void main(String[] args) {Dog dog=new Dog("refer",50);dog.show();}
}
第二題:
答案:
interface IPay{double pay(); //符合阿里編碼規范,就不再加public abstract,提高代碼簡潔性
}
class Winter implements IPay{int elc=145; //默認是public static finaldouble money=0.49;public double pay(){ //實現接口中的抽象方法,且不能使用默認修飾符,必須使用publicreturn elc*money;}
}
class Summer implements IPay{int elc=125;double money=0.49;public double pay(){return elc*money;}
}
class PayMoney{public void season(IPay pay){if (pay instanceof Winter){ //如果是冬天Winter winter=new Winter();System.out.println("冬天:"+winter.pay());}else if (pay instanceof Summer){ //如果是夏天Summer summer=new Summer();System.out.println("夏天:"+summer.pay());}else { //如果既不是冬天也不是夏天System.out.println("請傳入正確的參數");}}
}
public class P7_1 {public static void main(String[] args) {PayMoney p=new PayMoney();p.season(new Winter()); //使用匿名對象p.season(new Summer()); //使用匿名對象}
}
?
第三題:
答案:
interface Animal{String address="廣州動物園";default void eat(){ //接口里default和static修飾的方法可以進行實現System.out.println("每天吃得飽飽的!");}static void show(){System.out.println("我是動物!");}void ability(); //省略pubic abstract,提高代碼簡潔性
}
class Bird implements Animal{public Bird(){System.out.println("我是廣州動物園的鳥。");}@Override //添加注解,利用編譯器的檢查優勢,提高開發效率public void eat(){ //重寫方法必須用public修飾,不能使用默認的訪問權限Animal.show();System.out.println("我愛吃蟲子!每天吃得飽飽的!");}@Overridepublic void ability() {System.out.println("我會飛!");}
}
class Fish implements Animal{public Fish(){System.out.println("我是廣州動物園的魚。");}@Overridepublic void eat(){Animal.show();System.out.println("我愛吃小蝦!每天吃得飽飽的!");}@Overridepublic void ability() {System.out.println("我會游泳!");}
}
class Monkey implements Animal{public Monkey(){System.out.println("我是廣州動物園的猴子。");}@Overridepublic void eat(){Animal.show();System.out.println("我愛吃香蕉!每天都吃得飽飽的!");}@Overridepublic void ability() {System.out.println("我會爬樹!");}
}
public class Test {public static void main(String[] args) {Bird bird=new Bird();bird.eat();bird.ability();Fish fish=new Fish();fish.eat();fish.ability();Monkey monkey=new Monkey();monkey.eat();monkey.ability();}
}
第四題:
答案:
第五題:
答案:
enum ReviewPlan{//枚舉成員必須放在類的一開始,使用enum來枚舉就必須省略public static final,如果使用自定義枚舉類則規則不一樣Monday("星期一","數學"),Tuesday("星期二","數據結構"),Wednesday("星期三","Java"),Thursday("星期四","日語"),Friday("星期五","離散數學"),Saturday("星期六","Html+Css+JavaScript"),Sunday("星期天","電影藝術");private final String day; //因為枚舉針對的是有限個且確定的對象,不希望被修改,所以用private finalprivate final String plan;private ReviewPlan(String day,String plan){ //私有化類的構造器this.day=day;this.plan=plan;}public String toString(){ //重寫enum里自帶的toString方法return this.day+this.plan;}
}
public class Test {public static void main(String[] args) {for (ReviewPlan r:ReviewPlan.values()){System.out.println(r.name()+"的屬性是:"+r.toString());}}
}