繼承,多態,重載,抽象類,object
javascript
繼承:面向父類編程。
多態:根據實際對象類型來調用相應的方法。
某寶上`搜索`(public void Find(String name))java學習筆記,而後`顯示`(public String toString())搜索結果,通過比較或者篩選得出`正品`附帶光盤和網課學習視頻的66.66元的`商品`,`選擇`購買`數量`加入**購物車**,確認收貨地址,會覈對**聯繫人**,**聯繫方式**,**聯繫地址**,而後`付款`(public void Pay(String name)),等待收貨,五星好評❤❤❤❤❤。
1.商品是一個「大」的類,商品的價格等都是描述這個累的是這個類的屬性。
2.用戶也是一個「大」類,登陸,搜索,查看,篩選,購買,都是他的子類。
class Goods { private String name; private double price; @Override public String toString() { //輸出商品信息 return "Goods [name=" + name + ", price=" + price + "]"; public String getName(){ return name; } public void setName(){ this.name=name; } public double getPrice(){ return price; } public void setPrice(double price){ this.price=price; } } } class jieSuan{ private String name; private int phoneNumber; private String address; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(int phoneNumber) { this.phoneNumber = phoneNumber; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
共有方法`public Employee(String n, double s, int year, int month, int day)`
public String getName()
public double getSalary()
public Date getHireDay()
public void raiseSalary(double byPercent)
子類特有屬性和方法:
private double bonus
、void setBonus(double b)
、Manager(String n, double s, int year, int month, int day)
、double getSalary()
private double bonus
、public void setBonus(double b)
java
jvm會根據實際對象類型來調用方法,調用的應該是Employee類的getSalary方法。
利:新的子類能夠調用父類的方法,使得複用的時候更加簡單,也能體現二者關係,直接複製黏貼容易形成冗餘。
class Fruit{ String name; public Fruit(String str) { this.name=str; } public String toString() { return name + " " + super.toString(); } } public class Main { public static void main(String[] args) { Fruit a= new Fruit("xyz"); System.out.println(a); } }
class Fruit{ String name; public Fruit(String str) { this.name=str; } public String toString() { return name + " " + super.toString(); } public boolean equals(Fruit s) { return (this.name == s.name); } } public class Main { public static void main(String[] args) { Fruita1 = new Fruit("xyz"); Fruit a2 = new Fruit("xyz"); System.out.println(f1.equals(a2)); } }
Circle和Rectangle繼承了Shape,sumAllArea()和sumAllPerimeter()方法放在主類中,定義抽象類時,注意關鍵字abstract不要丟了。
好處:子類屬於父類,能更靈活對待類的差別;且不用單獨寫對應的代碼,更爲簡便
總結:ArrayList操做動態變化很便捷,例如 此題用了ArrayList的contains方法判斷了person是否存在。
程序填空:利用this來調用有參構造函數,覆蓋toString。
函數1:題目要求要用編寫toString要用到父類,因此用 super關鍵字調用父類的toString()。
函數2:注意題目要倒序輸出,要先把全部對象放到數組中。
函數3:注意當值爲null的狀況,不能忽略。
周次 | 總行數 | 新增行數 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 73 | 73 | 3 | 3 |
2 | 468 | 468 | 91 | 9 |
3 | 411 | 411 | 27 | 9 |
4 | 503 | 503 | 42 | 13 |