接口相关的语法

一个子类可以实现多个接口

package com.baidu.dao;
//接口一
public interface IDeptDAO {
    /**
     * 删除数据
     * @return
     */
    public int doRemove();
}

package com.baidu.dao;
//第二个接口
public interface IEmpDAO {
    /**
     *
     * @param emopno 要更新的数据编号
     * @return
     */

    public int doUpdate(Integer emopno);

}

package com.baidu.dao.imp;

import com.baidu.dao.IDeptDAO;
import com.baidu.dao.IEmpDAO;

public class EmpDAOImpl implements IEmpDAO, IDeptDAO {
    @Override
    public int doRemove() {
        System.out.println("删除数据成功");
        return 0;
    }

    @Override
    public int doUpdate(Integer eloop) {
        System.out.println("更新数据成功");
        return 0;
    }
}

如果要让一个子类实现多个接口,那么使用在implements之后使用逗号将需要实现的接口隔开。

public class Hi {

    public static void main(String[] args) {
        EmpDAOImpl dao = new EmpDAOImpl();
        dao.doRemove();
        dao.doUpdate(1001);

    }
}

接口之间可以相互继承

package com.baidu.dao;

/**
 * 这是一个父接口
 */
public interface IBaseDAO {
    public int doRemove();
}

package com.baidu.dao;
//接口一
public interface IDeptDAO extends IBaseDAO {
    /**
     * 子接口新扩充的方法
     * @return
     */
    public void getInfo();
}

package com.baidu.dao.imp;

import com.baidu.dao.IDeptDAO;
import com.baidu.dao.IEmpDAO;

public class EmpDAOImpl implements IDeptDAO {

    @Override
    public void getInfo() {
        System.out.println("子接口新扩充的方法:取得数据");
    }

    @Override
    public int doRemove() {
        System.out.println("父接口中的方法:删除数据成功");
        return 0;
    }
}

public class Hi {

    public static void main(String[] args) {
        IDeptDAO dao = new EmpDAOImpl();//赋值给子接口
        dao.doRemove();
        dao.getInfo();


    }
}

接口继承接口也是 “extends” 关键字,子类要实现所有接口(包括父接口)的抽象方法

继承友实现

一个子类既继承一个抽象类同时又能实现接口

package com.baidu.dao;

public abstract class MyAbstract {
    public abstract void say();
}

package com.baidu.dao;

public class DeptDAOImpl extends MyAbstract implements IDeptDAO {
    @Override
    public void getInfo() {
        System.out.println("子接口新扩充的方法:取得数据");
    }

    @Override
    public int doRemove() {
        System.out.println("父接口中的方法:删除数据");
        return 0;
    }

    @Override
    public void say() {
        System.out.println("实现了抽象类中的方法");

    }
}

public class Hi {

    public static void main(String[] args) {
        DeptDAOImpl dao = new DeptDAOImpl();
        dao.say();
        dao.doRemove();
        dao.getInfo();
    }
}

输出:
实现了抽象类中的方法
父接口中的方法:删除数据
子接口新扩充的方法:取得数据
一个子类如果继承了抽象类又实现了接口,那么该子类必须实现抽象类中的抽象方法,同时也要实现接口中的抽象方法。

小结

  • 一个类可以实现多个接口,其实这解决了继承的单继承局限。在implement之后用逗号将要实现的接口隔开。
  • 接口可以继承接口,关键字“extends”。
  • 一个类可以继承抽象类同时实现接口。
  • 抽象类和子类之间的使用“继承”来描述他们之间的父子关系,接口和其子类使用“实现”来描述他们之间的父子关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值