面向对象特征之继承,方法的重写

1.面向对象的特征:继承性

2.通过 Class A extends B 实现类的继承

子类:A     父类(基类 SuperClass):B 

3.子类继承父类后,父类声明的属性   方法,子类就可以获取到。

           注意:当父类中有私有的属性或者方法时,子类是可以获取的到,只是由于封装性的设计

                      使得子类不能直接调用。

  子类除了继承父类的结构之外,还可以定义自己的特有成分

extends:子类是对父类功能的扩展

4. Java中只能单继承:一个类只能继承一个父类,反之,一个父类可以有多个子类

5.父子类是相对的概念

Student:

package com.aff.java;

public class Student extends Person {
    /*
     * private String name; private int age;
     */
    private String schoolName;

    public Student() {
    }

    public Student(String name, int age) {
        // this.name = name;
        // this.age = age;
        this.setName(name);
        this.setAge(age);
    }

    /*
     * 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 void eat() { System.out.println("吃饭"); }
     * 
     * public void walk() { System.out.println("走路"); }
     */

    public void info() {
        System.out.println("学生");
    }
}

Worker:

package com.aff.java;

public class Worker extends Person {
    /*
     * private String name; private int age;
     * 
     * 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 void eat() { System.out.println("吃饭"); }
     * 
     * public void walk() { System.out.println("走路"); }
     */

}

Person:

package com.aff.java;

public class Person {

    private String name;
    private int age;

    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 void eat() {
        System.out.println("吃饭");
    }

    public void walk() {
        System.out.println("走路");
    }
}

Graduate:

package com.aff.java;

public class Graduate extends Student {
    public void show() {
        System.out.println("我想芳芳了");
    }
}

TestExtends:

package com.aff.java;

public class TestExtends {
    public static void main(String[] args) {
        Student s = new Student();
        s.eat();

        Worker w = new Worker();
        w.eat();

        Person p = new Person();
        p.eat();

        Graduate g = new Graduate();
        g.eat();
        g.info();
        g.show();
    }
}

输出结果:

吃饭
吃饭
吃饭
吃饭
学生
我想芳芳了

 

二:方法的重写

 1.前提:有子类继承父类

 2.子类继承父类以后,若父类的方法对子类不适用, 那么子类可以对父类的方法重写(override  overwrite)

    重写规则: 1.要求子类方法的    返回值类型    方法名(参数列表)与父亲的方法一样

                       2.子类方法的修饰符不能小于父类方法的修饰符

                       3.若父类方法抛异常,那么子类抛的异常类型不能大于父类的

                       4.子父类的方法必须同为static或同为非static的

All that work will definitely pay off
原文地址:https://www.cnblogs.com/afangfang/p/12515532.html