接口
接口在程序中,只是定义 方法的功能,没有方法的具体实现过程;
* 作用:
* 通过接口确定类,程序的业务,在团队项目开发的过程中,
* 组员可以通过接口 调用其他 人写的接口方法 而不需要 等待,其他组员的方法具体实现;
*
* 实现类可以同时实现多个接口 格式:implements IUserInfo,IUserInfo,IUserInfo...(接口名称)
*
* 接口 和接口之间 可以 继承:如果实现类需要去实现 那么 需要实现子接口 父接口中所有 接口方法;
*
* 开发 :面向接口开发...?
* 项目协同开发,多人参与项目中
* 将项目的需求 分配下来,每个组员根据自己的业务功能,确定需要用到的方法;
*
* 开始制定每天的 完成的功能,在这个过程中不可避免 会相互使用其他组员的方法;
*
* 为了实现协同开发,引入了接口的概念;
*
* 定义 方法的功能,不需要马上实现方法的业务;
*
* 通过实现类 去实现我们接口方法;
*
* 调用:通过接口对象 获取实现类对象;
*
* 通过接口对象 调用实现类中 未完成 方法;
*
* 接口是 编程规范的定义:定义 方法名称 返回类型 方法参数,所有实现 该接口的类 必须按照规范来实现;
* 对Java单继承 扩展;
* 接口中的 可以方法 可以定义变量(是常量);
* 接口中 没有 构造函数
/**
* 添加数据
*/
public boolean saveUserInfo(UserInfoEnt userEnt);
public boolean saveUserInfo(String userName, String userSex, String userAge,String userAdderss);
/**
* 修改数据
*/
public boolean updateUserInfo(int userNo);
/**
* 删除数据
*/
public boolean deleteUserInfo(int userNo);
/**
* 查询数据
*/
public UserInfoEnt queryUserInfo(String userName, String userSex);
/**
* 分页显示
*/
public UserInfoEnt[] queryPageUser(UserInfoEnt userEnt);
抽象类:
* 把一个不能具体描述 的对象,进行抽象的定义(UFO, 帅哥, 美女.....)
* 抽象类是 使用 abstract进行修饰的类
* 类中的方法 是 abstract 修饰的方法,抽象类中可以有 非抽象方法;
* 抽象类是被 继承的类,可以实现部分 抽象方法;
* 继承类 也变成了 抽象了;
*
* 抽象类中有 构造函数,但是不可以创建对象,在子类(实现了全部抽象方法的字类)创建对象 的时候 调用抽象类的构造函数;
public abstract class AbstractDemo {
public AbstractDemo(){
super();
System.out.println("抽象类 AbstractDemo 中的构造函数.....");
}
//受保护的 权限
protected void hello(){
System.out.println("我是一个 具体的非抽象 方法");
}
//定义抽象 起飞 方法
protected abstract String fly();
public abstract void eatSome();
//.....
}
继承:
* 继承:是类与 类之间的关联关系,继承的类 叫子类 被继承的类 叫父类,
* Java中的继承 为单继承,父类的父类 统称为父类;
A类 extends B,C (错误的)
A类 extends B; B类 extends C类 (正确)
子类继承了父类之后:
可以使用 父类的属性 和方法 (受保护 或 以上权限级别的)
* 子类中 如果 定义 与父类相同的方法叫:重写,权限修饰 范围必须 大于或者等于父类地权限修饰
* 父类中的属性 和方法 通过super 指定,子类中的:通过this指定;
* 所有的类的 基类 超类 都是:Object类
* 子类创建对象时间:执行过程...... ??
类中的 方法:重写 和 重载
重写:有子父类 继承的关系中,子类重写父类允许写的方法;
重载:在同一个类,定义相同的 方法名称 不同的实现逻辑(返回类型 参数类型 参数个数 参数顺序)
重写 和 重载 是多态的实现前提条件;
public class child extend parent{
}