第四章作业

1:文章介绍

2:案列展示

2.1 Demo4_1

案列介绍

  • 知识点:P113 继承的概念
  • 1、继承的概念:子类dog继承了父类Animal的属性(名称、年龄)和方法(setName、setAge、getName、getAge)
  • 2、子类直接访问了父类的非私有属性COLOR

代码展示
Animal类

package Demo4_1;

public class Animal {
    // ******************************  *1、属性*******************************
    private String name;         			 //声明name属性
    private int age;             			 //声明age属性
    public final String COLOR = "黑色";       //定义COLOR属性

    // *******************************2、方法-其他*******************************
    public String getName() {                //定义name属性的getter方法
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {                    //定义age属性的getter方法
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}

Dog类

package Demo4_1;
/**
 * 知识点:P113 继承的概念
 * 1、继承的概念:子类dog继承了父类Animal的属性(名称、年龄)和方法(setName、setAge、getName、getAge)
 * 2、子类直接访问了父类的非私有属性COLOR
 */
class Dog extends Animal {

}

主函数

package Demo4_1;

public class Example01 {
    public static void main(String[] args) {
        Dog dog = new Dog();        //创建一个Dog类的对象
        dog.setName("牧羊犬");       //此时调用的是父类Animal中的setter方法
        dog.setAge(3);              //此时调用的是父类Animal中的setter方法
        System.out.println("名称:"+dog.getName()+",年龄:"+dog.getAge()
                +",颜色:"+dog.COLOR);
    }
}

运行结果
在这里插入图片描述

2.2 Demo4_2

案列介绍

  • 知识点:怕114 继承的概念
  • 1.子类可以增加自己的属性(color)和方法9getColor,setColor)

代码展示
Animal类

ackage Demo4_2;

public class Animal {
    //*************************属性********************//

    private String name;
    private int age;
    public final String COLOR = "黑色";

    //*************************方法**********//
    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;
    }
}

Dog类

package Demo4_2;
/*
* 知识点:怕114 继承的概念
* 1.子类可以增加自己的属性(color)和方法9getColor,setColor)
*/

class Dog extends Animal {
    private String color;
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
}}

主函数

package Demo4_2;

public class Example02 {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.setName("小白");
        dog.setAge(3);
        dog.setColor("白");

        System.out.println("名称 " + dog.getName() + "年龄 " + dog.getAge() + "颜色 " + dog.getColor());
    }
}

运行结果
在这里插入图片描述

2.3 Demo4_3

案列介绍

  • 知识点:p115 方法重写的概念(方法名相同,)
  • 1.子类可以重写父类的方法
  • 2.子类重写父类方法是,必须使用@over

代码展示
Animal类

package Demo4_3;

public class Animal {
    // 定义动物的叫声
    void shout()
    {
        System.out.println("动物发出叫声");
    }
}

Dog类

package Demo4_3;
/*
* 知识点:p115 方法重写的概念(方法名相同,)
* 1.子类可以重写父类的方法
* 2.子类重写父类方法是,必须使用@over*/

public class Dog extends Animal {
    // 重写Animal类的shout()方法
    @Override
    void shout()
    {
        System.out.println("汪汪汪...");
    }
}

主函数

package Demo4_3;

public class Example03 {
    public static void main(String[] args)
    {
        Dog dog = new Dog();
        dog.shout();
    }
}

运行结果
在这里插入图片描述

2.4 Demo4_10

案列介绍

  • 定义dog继承抽象类animal
  • 实现抽象方法shout

代码展示
Animal类

package Demo4_10;
abstract class Animal {
    // 定义抽象方法shout()
    abstract void shout();
}

Dog类

package Demo4_10;
/*
* 定义dog继承抽象类animal
* 实现抽象方法shout*/

class Dog extends Animal {
    // 实现抽象方法shout()
    void shout() {
        System.out.println("汪汪……");
    }
}

主函数

package Demo4_10;

public class Example10 {
    public static void main(String[] args) {
        Dog dog = new Dog(); 		// 创建Dog类的对象
        dog.shout(); 				// 通过dog对象调用shout()方法
    }
}

运行结果
在这里插入图片描述

2.5 Demo4_11

案列介绍

  • 接口只定义类该具备的方法,但不提供实现。
  • 认识全局常量(public static final)
  • 接口中方法默认权限是(public abstract)

代码展示
接口类

package Demo4_11;

interface Action {
    public  void  eat();
}

package Demo4_11;
/*
* 接口只定义类该具备的方法,但不提供实现。
* 认识全局常量(public static final)
* 接口中方法默认权限是(public abstract)
* */

public interface Animal {
    public static final int ID = 1;
    public static final String name = "jinx";
    public abstract void shout();
    public abstract void info();
    public static int getId() {
        return Animal.ID;
    }
}

Dog类


package Demo4_11;
/*
* Dog类实现了Animal接口和Action接口
* 实现类必须实现所有接口的抽象方法
*
* */

public class Dog implements Animal,Action {
    @Override
    public void shout() {
        System.out.println("汪汪汪。。。。");
    }
    @Override
    public  void info(){
        System.out.println("名称"+name);
    }
    @Override
    public void eat(){
        System.out.println("喜欢吃骨头");
    }

}

主函数

package Demo4_11;

public class Example11 {
    public static void main(String[] args) {
        System.out.println("编号"+Animal.getId());
        Dog dog = new Dog();
        dog.shout();
        dog.info();
        dog.eat();
    }
}

运行结果
在这里插入图片描述

2.6 Demo4_14

案列介绍

  • 多态的概念,父类引用指向子类,调用子类重写对象
    代码展示
package Demo4_14;
/*
* 多态的概念,父类引用指向子类,调用子类重写对象
*
* */



abstract class Animal{
    abstract void shout ();
    }

class Cat extends Animal{
    @Override
    public void shout() {
        System.out.println("喵喵喵");
    }
}
class Dog extends Animal{
    @Override
    public void shout() {
        System.out.println("汪汪汪");
    }
}
public class Example14 {
    public static void main(String[] args) {
        Animal an1 = new Cat();
        an1.shout();
        Animal an2 = new Dog();
        an2.shout();
    }
}

运行结果
在这里插入图片描述

2.7 Demo4_23

案列介绍

  • 匿名类部类 是一种没有名字的类,他在定义的同时就创建了对象。
    代码展示
package Demo4_23;
/*
* 匿名类部类 是一种没有名字的类,他在定义的同时就创建了对象。
* */

interface Animal {
    void shout();
}
/*
* 测试类
* */
public class Example23 {
    public static void main(String[] args) {
        String name="小虎";
//调用animalshout()方法,传入匿名内部类实现animale接口.
        animalShout(new Animal() {
            @Override
            public void shout() {
                System.out.println(name + "叫");
            }
        });
    }
    public static void animalShout(Animal animal) {
        animal.shout();
    }

}

运行结果
在这里插入图片描述

3 简答题

1.简述Java中继承的概念以及使用继承的好处。

在 Java 中,继承是面向对象编程的三大特性之一(封装、继承、多态),它描述的是类与类之间的is-a关系(例如 “学生是一个人”“猫是一种动物”)。具体来说,继承允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性(成员变量)和方法,并可以在此基础上添加新的属性和方法,或重写父类的方法以实现特定功能。

2.简述多态的作用
多态是面向对象编程的核心特性之一,其核心作用是增强代码的灵活性、可扩展性和复用性。

3.简述接口和抽象类的区别。

抽象类:用abstract class定义,可包含抽象方法(无实现)和非抽象方法(有实现),也可包含成员变量。
接口:用interface定义,Java 8 之前只能包含抽象方法(默认public abstract)和常量(默认public static final);Java 8 及之后允许定义默认方法(default,有实现)和静态方法(static,有实现),但成员变量仍只能是常量。

4 书上p144编程题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值