User.java
package admin;
public interface User {
public static int dd = 2000;
public abstract String getId(); // 在接品中加不加abstract 都一样。因为接口中默认的修饰符为 abstract
public abstract void setId(String id);
public abstract String getName();
public abstract void setName(String name);
}
/*
*
* 这是定义一个 User 接口
*
* 里面只是将一些基本的操作方法进行定义,然后在 Abstract 类里面进行实写
* */
AbstractUser.java
package admin;
public class AbstractUser implements User {
private String id;
private String name;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return this.id;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public void say() {
System.out.println("this is abstractUser");
}
}
/*
* 这是一个 抽象类 implements User 接口,抽象类把接口里面的所有的方法进行重写,然后又定义了 User 对象的所有 属性
*
* */
SqlUser.java
package admin;
public class SqlUser extends AbstractUser {
public String show()
{
return "this is SqlUser";
}
}
/*
*
* 这是一个有实际功能的 类,其继承了 abstractUser ,其里面再添加的方法只有与 些所特有的类有关的
* 特有的方法
* */
web.java
package admin;
public class Web {
public static void main(String args[])
{
SqlUser user = new SqlUser();
AbstractUser abuser = new AbstractUser();
abuser.say();
System.out.println(user.show());
System.out.println(user.dd);
}
}
/*
* 抽象类与接口的应用
*
* 接口中的一般都是定义一般抽象方法,在方法前面加不加abstract 都一个样,因为接口的的默认修饰符就是abstract
* 有抽象方法的类一定要声明为抽象类,而作为子类继承了抽象类,那么抽象类里面的方法一定都要重载,如果一个抽象类里面没有抽象方法,这个类也是
* 可以实例化的
*
* 一般都项目开发过程中
*
* 接口定义一个对属性的操作
* get set
* 抽象类里定义属性,重写操作
*
* 而继承抽象类的子类把一些当前子类特有的功能添加进去,如果以后有什么 新的功能 ,只要继承一下抽象类再添加一些方法就可以了
*
*
*
*
* */