中国第八军团
新手报道 :
新兵宿舍
求助问答 :
悬赏问答
技术探讨 :
网络安全
敲敲代码 :
编程开发
资源分享 :
资源下载
论坛生活 :
军团茶座
站务管理 :
论坛版务
主题:1690 回帖:16933 会员:1264 在线:1
发新帖

【java】抽象类

blackflame 2017-3-14 482
抽象类

1、为什么要抽象:a) 当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取。这是,只抽取功能定义,而不抽取功能主体。
2、抽象类的特点:a)抽象方法一定在抽象类中。b)抽象方法和抽象类都必须被abstract关键字修饰。c)抽象类不可以用new创建对象。因为调用抽象方法没意义。d)抽象类中个的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。 如果子类覆盖了部分抽象方法,那么该子类还是一个抽象类。
3、抽象类和一般类没有太大的不同。 该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西,这些不确定的部分,也是该事物的功能呢,需要明确出现,但是无法定义主体。 通络抽象方法来表示。
4、抽象类比一般类多个抽象函数,就是在类中可以定义抽象方法。抽象类不可以实例化。
抽象类练习:1、员工包含3个属性:姓名、工号以及工资。经理也是员工,除了含有员工那的属性歪,另外还有一个奖金属性。使用继承的思想设计出员工类和经理类。要求类中必须提供必要的方法进行属性访问。//员工类abstract
Class Employee{ Private String name; Private String id; Private double pay; Employee(String name, String id,double pay){ This.name=name; This.id=id; This.pay=pay; } Public abstract void work();}//经理员工类Class Manager extends Employee{ Private int bonus; Manager (String name, Strin id,double pay, int bonus){ Super(name,id,pay); This.bonus=bonus; } Public void work(){ System.out.println(“managework”); }}//普通员工类Class Pro extendsEmployee{ Pro(Strin name, String id, douoblepay){ Super(name,id,pay); } Public void work(){ System.out.println(“pro work”); }}
今天,我在开发项目的时候,也遇到了类似的抽象类继承。持久层用的是JDBCTemplate 。public class BrandDao extends BaseDao { //使用jdbcTemplate对象 }
public class BaseDao extends AbstractJDBCRepo { @Autowired
private JdbcTemplate jdbcTemplate;
@Override
protected JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
}

public abstract class AbstractJDBCRepo { protected abstract JdbcTemplate getJdbcTemplate(); }

这三个类的关系就是 BrandDao ->继承BaseDao ->继承 AbstractController(抽象类);当时疑惑为什么不直接在baseDao中写抽象方法而是多用了一个baseDao。 就是利用了继承抽象类的特性,将来数据源不一样了,或者有多个数据源的时候只需要再来一个baseDao2就可以了。
最新回复 (1)
程小诺 2017-3-18
1
啦啦啦
返回



©1999-2017 第八军团
Time: 0.043, SQL: 9