您的位置:首页 > 其它

在子类中,一定要访问父类的有参方法?

2017-05-03 09:36 381 查看
达人科技 2017-05-02 11:11

public class Person {
    private int age;
    private String name;

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void want;
}

class Student extends Person{
private int score;
public int getScore { return score; }
public void setScore(int score) { this.score = score; }
   public Student(int age, String name,int score){
        super(age, name);
this.score=score; }
public void want { System.out.println("姓名:"+getName+"年龄:"+getAge+"成绩:"+getScore); } }

class Worker extends Person{
private int money;
 public int getMoney { return money; }
public void setMoney(int money) { this.money = money; }
public Worker(int age, String name,int money) {
super(age, name);
this.money=money; }
public void want { System.out.println("姓名:"+getName+"年龄:"+getAge+"工资:"+getMoney); } }

public class ABSDemo01 { public static void main(String[] args) {
Student s = new Student(10, "小明", 100);
 s.want; Worker w = new
Worker(35, "大明", 1000); w.want;
 }
 }

分析上面的代码:

上面代码,在父类中已经重写了构造方法public Person(int age,String name)。如果在子类中不进行父类的有参构造方法的访问,子类就会默认访问父类的无参构造方法super,但是父类已经构造了有参构造方法,父类中并没有无参构造方法,那它就不能调用了,所以编译就无法通过了。

总结1:

Java规定类的构造方法只能由new调用,程序员不能直接调用,但可用super间接调用,类的构造方法是不能继承的!

总结2:

♥♥如果子类构造方法中没有显示调用父类构造方法,那么系统自动去调用父类的默认构造方法super。

总结3:

创建有参构造方法后,系统就不再有默认无参构造方法。如果没有任何构造方法,系统会默认有一个无参构造方法。

总结4:

♥♥在没有给类提供任何构造方法时,系统会自动提供一个无参的方法实现为空的构造方法。一旦提供了自定义构造方法,系统将不会再提供这个默认构造方法。如果要使用它,程序员必须手动添加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: