Animal.java

//动物类
public class Animal {
    //给类定义私有的属性
    private String name;
    private int age;

    //定义构造方法
    public Animal(String name,int age){
        this.age = age;
        this.name = name;
        System.out.println("调用Animal有参数的构造方法");
    }
    //
    public Animal(){
        System.out.println("调用Animal无参数的构造方法");
    }

    //无返回值有参数的方法
    public void setAge(int age) {
        //this关键字代表本类
        //this关键字用来区分全局属性与局部属性 this是直接调用全局属性
        this.age = age;
    }

    //有返回值无参数的方法
    public int getAge() {
        return age;
    }

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

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

    //定义的父类方法
    public String shout(){
        return "w";
    }
}

Dog.java

//继承一个子类来继承父类
//继承一个子类只能继承一个父类
//一个父类可以被多个子类继承
//子类不能调用父类的私有属性
public class Dog extends Animal {
    private String color;

    public Dog(){
        super();//代表调用父类中无参数的构造方法
    }

    public Dog(String name,int age){
        //前提是父类中已经定义的类有参数的构造方法
        //super 调用构造方法必须放在第一行
        super(name,age);//调用父类中有参数的构造方法
        System.out.println("调用Dog类中的有参构造方法");
    }

    public void setColor(String color) {
        this.color = color;
    }

    //字类重新父类的方法这样的话 子类在实例化之后调用的词方法就是它自己重新过的内容
    //如果子类不重新父类的方法 则子类实例化之后调用的此方法叫是父类中方法的内容
    @Override
    public String shout() {
        //代表子类继承的父类
        super.shout();
        return "cnm";
    }

    public String getColor() {
        return this.color;
    }
}

class Demo{
    public static void main(String[] args) {
        Dog dog = new Dog("草泥马",1);
//        Dog dog = new Dog();
//        dog.setAge(3);
//        dog.setName("草泥马");
        dog.setColor("粉色");
        dog.shout();
        System.out.println(dog.getName()+"的年龄是:"+dog.getAge()+"岁,它的头发是:"+dog.getColor()+dog.shout());
    }
}

ShephedDog.java

//子类继承父类,但是父类有另一个类的子类
//只要父类或父类以上的父类的非使用的方法与属性 它都可以使用
public class ShepherdDog extends Dog{
    @Override
    public String shout() {
        super.shout();
        return "它的叫声很nice";
    }
}


class Demo1{
    public static void main(String[] args) {
        ShepherdDog s = new ShepherdDog();
        s.setName("中华田园牧羊犬"); //在它父类的父类中定义的
        s.setColor("黄色"); //在它父类的父类中定义的
        s.setAge(6);//在它父类中定义的
        System.out.println(s.getName()+"的年龄是:"+s.getAge()+"岁,它的颜色是"+s.getColor()+"的,"+s.shout());
    }
}
最后修改:2021 年 04 月 25 日 05 : 09 PM
如果觉得我的文章对你有用,请随意赞赏