接口和抽象类,接口和抽象类的区别

接口和抽象类,接口和抽象类的区别

1 按如下要求编写Java程序

1.1 开发出一个Animal类(动物)要求如下:

1.1.1 该类为抽象类

1.1.2 定义一个私有的(private)、字符串类型的、实例属性name,表示动物的名称。

1.1.3 该类仅有一个公有的(public)构造方法,该构造方法有一个参数,参数为字符串类型该参数表示动物的名称,该构造方法的功能为将参数值赋值于属性name。

1.1.4 该类包含两个互为重载的方法:

1.1.4.1 public String getName(){//…} 功能为获得动物的名称;

1.1.4.2 public String getName(String prefix){ //…} 功能为获得前面加上前缀的的动物名称。

1.1.5 定义一个公有的抽象方法,其功能为吃东西:public abstract void eat();

1.2 开发一个Flyer接口(飞行者),要求如下:

1.2.1 定义一个飞行方法:void fly();

1.3 开发一个Swimer接口(游泳者),要求如下:

1.3.1 定义一个游泳方法:void swim();

1.4 开发一个FlyFish类(飞鱼)要求如下:

1.4.1 该类为非抽象类;

1.4.2 继承Animal类;

1.4.3 实现Flyer接口和Swimer接口;

1.4.4 定义一个公有的(public)无参构造方法,该构造方法通过调用父类的构造方法为父类属性name赋值“飞鱼”。

1.4.5 定义一个公有的实例方法,其功能为玩游戏:public void game(){//…}

1.5 开发一个测试类如下,进行测试。

public  abstract class Animal {
    private String name;
    public Animal(String name){
        this.name=name;
    }

    public Animal() {

    }

    public String getName(){
        return name;
    }
    public String getName(String prefix){
        return prefix+name;
    }
    public abstract void eat();

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


public interface Flyer {
    void fly();
}

public interface Swimer {
    void swim();
}

ublic class FlyFish extends Animal implements Flyer,Swimer {
    public FlyFish(){
        super.setName("飞鱼");
    }
    @Override
    public void eat() {
        System.out.println("飞鱼吃");
    }

    @Override
    public void fly() {
        System.out.println("飞鱼飞");
    }

    @Override
    public void swim() {
        System.out.println("飞鱼游泳");
    }
    public void game(){
        System.out.println("玩游戏");
    }
}


public class Text {
    public static void main(String[] args) {
        System.out.println("----------测试飞鱼类------------");
        FlyFish flyFish=new FlyFish();
        System.out.println("飞鱼名称:"+flyFish.getName());
        System.out.println("问候飞鱼:"+flyFish.getName("可爱的"));
        flyFish.eat();
        flyFish.fly();
        flyFish.swim();
        flyFish.game();
        System.out.println("----------测试动物类------------");
        Animal animal=flyFish;
        System.out.println("动物名称:"+animal.getName());
        System.out.println("问候动物:"+animal.getName("你好"));
        animal.eat();
        System.out.println("----------测试飞行者接口------------");
        Flyer flyer=flyFish;
        flyer.fly();
        System.out.println("----------测试游泳者接口------------");
        Swimer swimer=flyFish;
        swimer.swim();

        Flyer flyer1=new FlyerImpl();
        flyer1.fly();


    }

}
一款极为优秀的资料搜索、资料收集、资料数据库保存、资料浏览、资料批处理的专业工具软件,是学习、科研、开发人员的极好助手; 本地搜索功能较WINDOWS自带的搜索功能更为实用,并且功能在逐步增加; 可以按关键词的组合快速搜索各种文件类型或文件名的文件; 可以轻松编辑文件列表:反选择文件;选择全部文件;不选任何文件; 可以对列表中文件按“文件名”“文件路径”“文件大小”“文件创建日期”“文件修改日期”“文件搜索范围”“文件版本”进行进一步模糊查询,和轻松选定; 可以打开列表中任何文件或目录; 可以查看列表文件的详细信息; 可以批量大写或小写所选文件名或文件夹名; 可以用默认的程序打开所选文件名或文件夹名; 可以复制、移动和删除文件,在复制和移动文件时,对相同的文件名可以自动重命名...; 可以批量重置文件各种属性; 可以搜索网页文件,自带浏览器的极为方便,快捷; 可以保存和加载保存的搜索列表文件; 可以批量修改网页软件,替换或插入您需要的内容; 可以自动生成电脑中网页文件的索引文件; 可以定时自动快速浏览网页文件、WORD文件、文本文件的内容,每秒可以浏览几十个文件; 可以实现*.JS文件和*.HTM网页文件之间的转换; 可以将某个网页文件或某个目录下的所有网页文件内容导入数据库保存,可以将他人保存的数据导入自己的数据库中,便于数据信息交流 可以对数据库实现SQL查询; 利用本软件上网浏览网页,会自动将网页内容载入数据库保存; 软件窗口自动伸缩,便于浏览、切换...... 本软件的特点: 1、组合快速本地搜索,进一步的模糊查询和筛选; 2、快速智能网络搜索,自动网页过滤保存、数据库保存及数据库的查询; 3、方便的网页浏览,页面内容快速模糊查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值