java基础六 面向对象--继承

Animal部分

设置父类公共属性和方法,在子类中可以直接调用。

package com.animal;
public class Animal {
    private String name;
    private int month;
    private String species;

    public Animal () {

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

    public int getMonth() {
        return month;
    }
    public void setMonth(int month) {
        this.month = month;
    }
    public String getSpecies() {
        return species;
    }
    public void setSpecies(String species) {
        this.species = species;
    }
    // 吃东西
    public void eat () {
        System.out.println(this.getName() + "吃东西");
    }
}

Cat部分

通过extends声明继承关系。直接在this里可以找到父级属性和方法

ackage com.animal;

public class Cat extends Animal{
    private double weight;
    public Cat() {

    }
    public double getWeight() {
        return weight;
    }
    public void setWeight(double weight) {
        this.weight = weight;
    }

    // 跑动的方法
    public void run() {
        System.out.println(this.getName() + "是一只" + this.getSpecies() + ",他在奔跑");
    }
}

测试部分

引用Cat和Dog模块,然后调用方法。

package com.test;

import com.animal.Cat;
import com.animal.Dog;

public class Test {
    public static void main(String[] args) {
        Cat one = new Cat();
        one.setName("花花");
        one.setSpecies("中华田园猫");
        one.eat();
        one.run();
        System.out.println("-----------------------");
        Dog two = new Dog();
        two.setName("妞妞");
        two.setMonth(1);
        two.eat();
        two.sleep();
    }
}

方法重载

  • 1.同一个类中
  • 2.方法名相同
  • 3.方法返回值、访问修饰符任意
  • 4.与方法的参数无关

方法重写

  • 1.有继承关系的子类中
  • 2.方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同
  • 3.与方法的参数无关

随机浏览