多态(父类指向子类对象)中成员的特点:
非静态成员函数特点:
编译时期:参阅引用型变量所属的类中是否有调用的方法。若有,则编译通过,如果没有,编译失败。
运行时期:参阅对象所属的类中是否有调用的方法
简单总结:成员函数在多态调用时编译看左边,运行看右边
以下编程一般用不到:
成员变量特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点:
///////////////////////////////////////////////////////////////////////
需求:数据库的操作
1连接数据库JDBC,hibernate
2操作数据库c((create)r(read)u(update)d(delete)
3关闭数据库连接
数据是:用户信息
Class UserInfoByJDBC
{
public void add(User user)
{
1.JDBC连接数据库
2使用sql添加语句添加数据
3关闭连接
}
public void delete(User user)
2使用sql添加语句删除数据
}
Class UserInfoByHibernate
1.Hibernate连接数据库
Class DBoperate
Main:
UserInfoByJDBC ui=new UserInfoByJDBC();
Ui.add(user);
Ui.delete(user);
////////////////////////////////////////////////////////////对以上代码优化
Interface UserInfoDao
public void add(User user);
public void delete(User user);
Class UserInfoByJDBC implements UserInfoDao
Class UserInfoByHibernate implements UserInfoDao
接口的好处:降低耦合性
UserInfoDao ui=new UserInfoByJDBC();
UserInfoDao ui=new UserInfoByHibernate();