Java中的接口与抽象类的比较、应用和实例 – 一个培训师不错的简洁解述

来源:互联网 发布:中国移动l2tp拨号软件 编辑:程序博客网 时间:2024/05/16 11:14

 

接口与抽象类:
(1)只能定义方法名,不包含实现方法的内容。
(2)可以像接口那样只定义方法名,并且可以方法中包含实现的方法。
使用:用抽象类(可以是多个)实现接口定义的方法,然后让其它类继承。
通常接口的作用在于使整个项目结构清晰,方便管理。
注意:抽象類不能夠通過new直接實例化的
 
相当详细的例子:
接口:
package eudcation.interfaceCls;
import java.util.Date;
public interface IUser {
    /**
     * 得到数据库名称ID
     */
    public Long getId();
    /**
     *设置数据库ID
     */
    public void setId(Long id);
    /**
     * 得到用户名
     */
    public String getUserId();
    /**
     * 设置用户名
     */
    public void setUserId(String userId);
    /**
     * 得到密码
     */
    public String getPassword();
    /**
     * 设置密码
     */
    public void setPassword(String password);
    /**
     * 得到用户姓名
     */
    public String getName();
    /**
     * 设置用户姓名
     */
    public void setName(String name);
    /**
     * 的到最后登陆时间
     */
    public Date getLatestOnline();
    /**
     * 设置最后登陆时间
     */
    public void setLatestOnline(Date date);
}
 
抽象类:主要用于实现上面接口定义的方法
package eudcation.interfaceCls;
import java.util.Date;
abstract class AbstractUser implements IUser {
    private Long id; //数据库ID
    private String userId; //用户名
    private String password; //密码
    private String name; //姓名
    private Date latestOnline;//最后登陆时间
    /********一下为接口IUser的实现方法***********/
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getUserId() {
        return userId;
    }
    public void setUserId(String userId) {
        this.userId = userId;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
     public Date getLatestOnline() {
        return latestOnline;
    }
    public void setLatestOnline(Date latestOnline) {
        this.latestOnline = latestOnline;
    }
}
 
其它类:通过继承抽象类来实现所需方法属性
package eudcation.interfaceCls;
public class Student extends AbstractUser {
//public class Student{
        //学生所属班级
            private SchoolClass schoolclass;
            /**
             * 得到学生所在班级
             */
            public SchoolClass getSchoolclass() {
                return schoolclass;
            }
            /**
             * 设置学生所在班级
             */
            public void setSchoolclass(SchoolClass schoolclass) {
                this.schoolclass = schoolclass;
            }
        }

 记于:2007-03-15

原创粉丝点击