1.简述重写的条件
a.父子类
b.方法名相同
c.返回值类型有关
基本数据类型,要求是一致
引用数据类型,子类的比父类的要小
d.和修饰符有关
访问修饰符来说,子类的要比父类的大
static修饰的方法不可以重写
final修饰的方法不可以被重写
2.分析并写出下列程序结果
public class Test2{
public static void main(String[] args){
new Demo().test(); // Test Demo Rose Jack
new Demo("john").test(); // john Jack
}
}
class Test{//父类
String name = "Rose"; //john
public Test(){
System.out.println("Test");
}
public Test(String name){//john
this.name = name;
}
}
class Demo extends Test{//子类
String name="Jack";//重名属性
public Demo(){
super();
System.out.println("Demo");
}
public Demo(String s){//John
super(s);
}
public void test(){
System.out.println(super.name);
System.out.println(this.name);
}
}
输出结果为: Test Demo Rose Jack
john Jack
3.编程要求如下
构造类
Employee
package com.atguigu.home;
public class Employee {
private int id;
private String name;
private int age;
private double salary;
public Employee(int id, String name, int age, double salary) {
this.id = id;
this.name = name;
this.age = age;
this.salary = salary;
}
public Employee() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getInfo(){
return name+"--"+id+"--"+age+"--"+salary;
}
}
Programmer
package com.atguigu.home;
public class Programmer extends Employee {
private String language;
public Programmer(int id, String name, int age, double salary, String language) {
super(id, name, age, salary);
this.language = language;
}
public Programmer() {
}
public Programmer(String language) {
this.language = language;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getInfo(){
return super.getInfo()+"--"+language;
}
}
Designer
package com.atguigu.home;
public class Designer extends Programmer{
private double bonus;
public Designer(int id, String name, int age, double salary, String language, double bonus) {
super(id, name, age, salary, language);
this.bonus = bonus;
}
public Designer() {
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
public String getInfo(){
return super.getInfo()+"--"+bonus;
}
}
Architect
package com.atguigu.home;
public class Architect extends Designer{
private double stock;
public Architect(int id, String name, int age, double salary, String language, double bonus, double stock) {
super(id, name, age, salary, language, bonus);
this.stock = stock;
}
public Architect() {
}
public double getStock() {
return stock;
}
public void setStock(double stock) {
this.stock = stock;
}
public String getInfo(){
return super.getInfo()+""+stock;
}
}
测试类
Home1
package com.atguigu.home;
public class Home1 {
public static void main(String[] args) {
Employee employee1 = new Employee(1, "张三", 18, 30000);
System.out.println(employee1.getInfo());
Programmer programmer = new Programmer(2,"李四",78,5000,"java");
System.out.println(programmer.getInfo());
Designer designer = new Designer(3, "王五", 37, 70000, "java", 8000);
System.out.println(designer.getInfo());
Architect architect = new Architect(4, "赵六", 56, 89999, "java", 78888, 1000);
System.out.println(architect.getInfo());
}
}