(33)多态中成员的特点

xiaoxiao2021-02-27  314

多态(父类指向子类对象)中成员的特点:

非静态成员函数特点:

            编译时期:参阅引用型变量所属的类中是否有调用的方法。若有,则编译通过,如果没有,编译失败。

            运行时期:参阅对象所属的类中是否有调用的方法

简单总结:成员函数在多态调用时编译看左边,运行看右边

以下编程一般用不到:

成员变量特点:

           无论编译和运行,都参考左边(引用型变量所属的类)

在多态中,静态成员函数的特点:

           无论编译和运行,都参考左边(引用型变量所属的类)

///

需求:数据库的操作

1连接数据库JDBC,hibernate

2操作数据库c(createrreaduupdateddelete

3关闭数据库连接

数据是:用户信息

Class UserInfoByJDBC

{

       public void add(User user)

          {

            1.JDBC连接数据库

            2使用sql添加语句添加数据

            3关闭连接

          }

 

       public void delete(User user)

          {

            1.JDBC连接数据库

            2使用sql添加语句删除数据

            3关闭连接

          }

 

}

Class UserInfoByHibernate

{

       public void add(User user)

          {

            1.Hibernate连接数据库

            2使用sql添加语句添加数据

            3关闭连接

          }

 

       public void delete(User user)

          {

            1.Hibernate连接数据库

            2使用sql添加语句删除数据

            3关闭连接

          }

 

}

 

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

{

       public void add(User user)

          {

            1.JDBC连接数据库

            2使用sql添加语句添加数据

            3关闭连接

          }

 

       public void delete(User user)

          {

            1.JDBC连接数据库

            2使用sql添加语句删除数据

            3关闭连接

          }

 

}

Class UserInfoByHibernate  implements UserInfoDao

 

{

       public void add(User user)

          {

            1.Hibernate连接数据库

            2使用sql添加语句添加数据

            3关闭连接

          }

 

       public void delete(User user)

          {

            1.Hibernate连接数据库

            2使用sql添加语句删除数据

            3关闭连接

          }

 

}

接口的好处:降低耦合性

Class DBoperate

{

Main:

  UserInfoDao  ui=new UserInfoByJDBC();

Ui.add(user);

Ui.delete(user);

UserInfoDao  ui=new UserInfoByHibernate();

转载请注明原文地址: https://www.6miu.com/read-7184.html

最新回复(0)