网站做支付按流量付费吗成都关键词优化报价
- 子类可以增加字段、增加方法或覆盖父类方法,但继承不会删除任何字段和方法
- 不恰当认为super 同 this 引用是类似的概念,其实super不是一个对象的引用,不能将值super赋给另一个对象变量,super只是一个指示 编译器调用父类方法的特殊关键字
- this关键字,一指示隐式参数的引用,二是调用该类的其他构造器;super关键字,一是调用超类方法,二是调用超类的构造器。调用构造器语句只能作为另一个构造器的第一条语句出现。构造器参数可以传递给当前类(this)的另一个构造器,也可以传递给超类(super)的构造器。
- 继承不仅局限于一个层次,它可以是多层次的,树状结构。
- 有时候不希望定义某个类的子类,可以使用final修饰类,那就表明了这个类是final类,不能够被继承,这个类中的所有方法都自动变成final方法,不过不包括字段。如果使用final修饰方法,那么就是final方法,所有继承这个类的子类都不能覆盖这个方法。final也可以用来修饰字段,在构造对象之后,字段就不允许改变了。
- object是所有类的始祖,但不需要显式写出。
父类
package father_class;import java.time.LocalDate;public class father_employee {private String name = "";private double salary = 0;private LocalDate hireDay ;public father_employee(String name, Integer salary, int year, int month, int day){this.name = name;this.salary = salary;hireDay = LocalDate.of(year,month,day);}public father_employee(){}// 调整工资public void modifySalary(double rate){salary = salary * rate;}public double printSalary(){return salary;}public String getName(){return name;}public void setName(String name ){this.name = name;}public double getSalary(){return salary;}public void setSalary(Integer salary){this.salary = salary;}public LocalDate getHireDay() {return hireDay;}public void setHireDay(LocalDate hireDay) {this.hireDay = hireDay;}
}
子类
package father_class;public class son_manager extends father_employee {private Integer bonus = 0;/**** @param name* @param salary* @param year* @param month* @param day*/
// 构造方法public son_manager(String name,Integer salary,int year,int month,int day,int bonus){super(name,salary,year,month,day);this.bonus = bonus;}public double getSalary(){return super.getSalary()+bonus;}public void setBonus(Integer bonus){this.bonus = bonus;}public Integer getBonus(){return bonus;}}
测试类
package father_class;public class test {public static void main(String[] args) {
// 有奖金的老板var boss = new son_manager("Boss", 100000, 2018, 12, 12, 3485);// 三个员工var staff = new father_employee[3];staff[0] = boss;// 创建两个员工staff[1] = new father_employee("one", 9000, 1982, 12, 3);staff[2] = new son_manager("Manager", 10000, 2019, 1, 1, 999);// 打印for (father_employee e : staff) {System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());}father_employee father_1 = new father_employee();father_1.setName("IKUN");father_1.setSalary(1982);father_1.modifySalary(2.5);System.out.println("name=" + father_1.getName() + ",salary=" + father_1.getSalary());}
}
运行截图