继承,多态,重载,抽象类,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 |