本人初学者,请教一下。java中,子类调用父类的方法,父类的构造方法这个时候会被执行吗?

caicaihaohaohao 2017-03-31 11:45:49
java中,子类调用父类的方法,父类的构造方法这个时候会被执行吗?
...全文
383 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37633640 2017-04-05
  • 打赏
  • 举报
回复
构造子类会先执行父类的构造方法
ZeWe 2017-04-02
  • 打赏
  • 举报
回复
直接写sql也可以,不加null
Spinach007 2017-04-02
  • 打赏
  • 举报
回复
不会 凑数字凑数字
qq_38160192 2017-04-02
  • 打赏
  • 举报
回复
讲真的,你真是初学者吗,好厉害的感觉
科比请留步 2017-04-01
  • 打赏
  • 举报
回复
创建子类的时候才会调用父类的构造
caicaihaohaohao 2017-04-01
  • 打赏
  • 举报
回复
父类 package com.hpit.invitationmanage.util; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming.NoInitialContextException; import javax.sql.DataSource; public class BaseDao { protected Connection conn; protected PreparedStatement ps; protected ResultSet rs; protected BaseDao() { super(); try { Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbcpost"); conn = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } protected int executeUpdate(String sql,Object[] param){ int updateRow = 0; try { ps = conn.prepareStatement(sql); for(int i=0;i<param.length;i++){ ps.setObject(i+1,param[i]); } updateRow = ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } return updateRow; } protected int executeQuery(String sql,Object[] param){ int count = 0; try { ps = conn.prepareStatement(sql); for(int i = 0;i<param.length;i++){ ps.setObject(i+1,param[i]); } rs = ps.executeQuery(); if(rs.next()){ count = rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); } catch (NullPointerException e){ e.printStackTrace(); } return count; } protected ResultSet query(String sql,Object[] param){ try { ps = conn.prepareStatement(sql); for(int i = 0;i<param.length;i++){ ps.setObject(i+1,param[i]); } rs = ps.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return rs; } protected boolean close(){ if(null != rs){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); return false; } } if(null != ps){ try { ps.close(); } catch (SQLException e) { e.printStackTrace(); return false; } } if(null != conn){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); return false; } } return true; } } 子类 package com.hpit.invitation.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.hpit.invitationmanage.dao.InvitationDao; import com.hpit.invitationmanage.entity.Invitation; import com.hpit.invitationmanage.util.BaseDao; public class InvitationDaoImpl extends BaseDao implements InvitationDao { @Override public List<Invitation> pageInvitation(int pageSize, int pageNumber) { List<Invitation> invitations =new ArrayList<Invitation>(); String sql = "select * from invitation order by createdate desc limit ?,?"; Object[] param = {(pageNumber-1)*pageSize,pageSize}; ResultSet rSet = super.query(sql, param); try { while(rSet.next()){ Invitation invitation = new Invitation(rSet); invitations.add(invitation); } } catch (SQLException e) { e.printStackTrace(); } return invitations; } @Override public int countRow() { String sql = "select count(1) from invitation"; int total = super.executeQuery(sql,null); return total; } } 当子类调用父类方法时,父类的构造方法应该被执行了吧,因为程序能够 正常运行。不太确定原理,所以问一下。 executeQuery方法后面的一个参数传null,有影响吗?
Carrie_zzz 2017-04-01
  • 打赏
  • 举报
回复
创建子类后会在子类的构造方法开始调用父类的
mayiaihuangluo 2017-04-01
  • 打赏
  • 举报
回复
有多种情况,子类没有构造函数,默认使用父类的无参的构造函数。 子类有构造函数,使用自己的构造函数 。。。。其实你自己写个父类子类,设置一下构造函数看输出结果,动手操作比你看的效果好得多 学习一定要多敲代码,死记硬背是行不通的,除非你是天才

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧