广州网站制作企业,音乐网站可以用什么语言做,建设导航网站费用,WordPress切换标记抽象类#xff1a;类中没有包含足够的信息来描绘一个具体的对象。 为什么要创建抽象类#xff1f; 为了更好的继承#xff0c;以后能更好的扩展#xff0c;减少类与类之间的耦合。 什么时候需要创建一个抽象类#xff1f; #xff08;简单粗暴的理解#xff09;某个方法…抽象类类中没有包含足够的信息来描绘一个具体的对象。 为什么要创建抽象类 为了更好的继承以后能更好的扩展减少类与类之间的耦合。 什么时候需要创建一个抽象类 简单粗暴的理解某个方法在父类中实现出来没有任何意义必须根据子类的实际需求来进行不同的实现 那么就可以将这个方法声明为abstract方法此时这个类也就成为abstract类。 tips: 1. 构造方法类方法用static修饰的方法不能声明为抽象方法。如何理解 2.抽象类的子类必须给出抽象类中的抽象方法的具体实现除非该子类也是抽象类。 如何创建抽象类 就像写文章先建立大纲一样创建3个java文件。 1. 父类 - 抽象类 Employee.java 文件。 2. 子类 - 继承抽象类 Salary.java 文件。 3. 实例化子类 SalaryList.java 文件。 再根据大纲填充内容。 首先来填充抽象类的内容。 抽象类可以声明变量、成员方法、和构造方法。 public abstract class Employee {private String name;private String address;private int number;public Employee(String name, String address, int number){this.name name;this.address address;this.number number;}public double computePay(){return 0.0;}public void mailCheck(){System.out.println(Mailing a check to this.name this.address);}public String toString(){ return name address number;}public void setAddress(String newAddress){address newAddress;}public String getName(){return name;}public String getAddress(){return address;}public int getNumber(){return number;}} 再来看子类如何继承 任何子类必须重写父类的抽象方法或者声明自身为抽象类 public class Salary extends Employee {private double salary;public Salary(String name, String address, int number, double salary){super(name, address, number);setSalary(salary);}public void mailCheck(){System.out.println(Within mailCheck of Salary class);System.out.println(Mailing check to getName() with salary salary);}public double getSalary(){return salary;}public void setSalary(double newSalary){if(newSalary 0.0){salary newSalary;}}// Override 伪代码,表示重写(不写也可以)写上的好处://可以当注释用,方便阅读编译器可以帮你检查方法的方法名是否父类中所有的如果没有则报错//如果你不加Override则编译器将不会检测出拼写错误而是会认为你为子类定义了一个新方法public double computePay() {
// return super.computePay();System.out.println(Computing salary pay for getName());return salary/52;}
} 最后实例化 继承了抽象类Employee的子类Salary的实例化 public class AbstractDemo { //继承了抽象类Employee的子类Salary的实例化public static void main(String [] args){Salary s new Salary(aaa, Beijing, 2, 5.0);Employee e new Salary(bbb, Beijing, 3, 6.0);s.mailCheck();e.mailCheck();}
} 转载于:https://www.cnblogs.com/dodocie/p/7447437.html