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

abstract 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:

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

时间: 2024-12-20 07:36:07

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

子类中的属性跟父类中的属性重名的时候,会优先使用子类中的属性

package charter05; public class Animal { int age = 8; //如果父类中显示的声明了有参的构造方法, //而子类中没有显示的声明有参构造方法,此时编译会报错 public Animal(int age) {// super(); this.age = age; } } //-------子类--------------- package charter05; public class Dog { int age = 20; } //-------

在Eclipse中使用JDBC访问MySQL数据库的配置方法

在Eclipse中使用JDBC访问MySQL数据库的配置方法 分类: DATABASE 数据结构与算法2009-10-10 16:37 5313人阅读 评论(10) 收藏 举报 jdbcmysql数据库eclipsewordpressproperties 这是一篇JDBC的使用入门文章,主要内容是如何在Eclipse中使用MySQL的JDBC驱动程序. 要使用JDBC访问MySQL的数据库,或者是其他类型的数据库,必须要有这种数据库系统的JDBC驱动程序.通常,JDBC驱动程序是由数据库开发商制

PHP 在xampp中为项目访问配置本地域名的方法

好多程序员们喜欢使用localhost/项目名访问项目  或者 使用127.0.0.1进行项目访问,有的时候在利用某些项目开发的时候,由于前期项目开发时一些图片或者资源的路径默认存储的都是本地的路径,当部署到服务器上的时候,发现路径不会,好多图片或者资源都找不到了或者图片看不到了,为了避免这种情况,今天教大家如何本地配置本地域名. 1.首先打开 目录 C盘下  xampp/bin/apache/apche2.4.9/conf/extra 目录下的httpd-vhosts.conf文件打开 拉到页

机器学习系列(11)_Python中Gradient Boosting Machine(GBM)调参方法详解

原文地址:Complete Guide to Parameter Tuning in Gradient Boosting (GBM) in Python by Aarshay Jain 原文翻译与校对:@酒酒Angie && 寒小阳([email protected]) 时间:2016年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/52663170 声明:版权所有,转载请联系作者并注明出 1.前言 如果一直以来你只把GBM

Python中Gradient Boosting Machine(GBM)调参方法详解

原文地址:Complete Guide to Parameter Tuning in Gradient Boosting (GBM) in Python by Aarshay Jain 原文翻译与校对:@酒酒Angie([email protected]) && 寒小阳([email protected]) 时间:2016年9月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/52663170 1.前言 如果一直以来你只把GBM当

php 子类如何访问父类的静态方法

1.子类内部访问父类静态成员属性或方法,使用 parent::method()/self::method() 注意:$this->staticProperty(父类的静态属性不可以通过$this(子类实例)来访问,会有这样报错:PHP Strict Standards: Accessing static property Person::$country as non static in,PHP Notice: Undefined property: ) 2.子类外部 1.子类名::method

JavaSE8基础 多态 子类重写了父类的普通方法 父类引用调用子类中重写的方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class Father { public int num = 1; public void sayHello() { System.out.println("hello"); } public static void staticFun() { System.out.println("s

子类中的成员函数覆盖父类(name hiding)

只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using namespace std; class A{ public: void print(){cout << "A::print()" << endl;} }; class B:public A{ public: void print(int i ){cout <<

C++反汇编第三讲,反汇编中识别继承关系,父类,子类,成员对象

讲解目录: 1.各类在内存中的表现形式   备注: 主要复习开发知识,和反汇编没有关系,但是是理解反汇编的前提.     2.子类继承父类 2.1 子类中有虚函数,父类中有虚函数 : 都有的情况下    2.2 子类中没有虚函数,父类中有虚函数 : 子类没有,父类有的情况 2.1 2.2的情况都是一样的.     2.3   子类中有虚函数,父类中没有虚函数 : 子有父没有的的情况下    2.4 子类父类都没有虚函数的情况下 第二专题大总结. 熟悉反汇编可以直接看这个总结, 3.结合第二专题的