目录
重写override与重载overriding(8个方面)
重写override | 重载overriding | ||
---|---|---|---|
1.类 | 产生两个继承关系的类,子类重写父类的方法 | 一个类中的一组方法 | |
2.权限修饰符 | 子类可以大于等于父类(子public>父protect) | 无要求 | |
3.特征修饰符 | 父类fianl | 不能重写(final修饰的方法不能改变) | 无要求 |
父类static | 没有重写之说(静态元素属于类,不属于对象) | 无要求 | |
父类abstract | 必须重写(添加执行体),否则子类也是抽象类 | 无要求 | |
4.返回值类型 | 子类小于等于父类(子HashMap<父Map) | 无要求 | |
5.方法名 | 一致 | 一个类中的多个重载方法名一致 | |
6.参数列表 | 一致 | 必须不一致(个数,类型,顺序) | |
7.抛出的异常 | 运行时异常 | 可以不添加异常 | 无要求 |
编译时异常 | 异常个数少于等于父类, 异常类型小于等于父类 | 无要求 | |
8.方法执行体 | 与父类不一致(否则无重写之说) | 重载的方法执行该过程不一致 |
加载JDBC驱动几种方式
//1.导包
//mysql-connection-java-8.0.27.jar
//2.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");方式1:
DriverManager.registerDriver(new Driver());
原因: Class.forName 类加载属于静态成员,底层也是注册了一个DriverManager
方式2:
new Driver();
new之前也会加载类(隐藏了,看不见), 申请对象空间 ,会重复创建对象,没意义
方法3:
System.setProperty("jdbc.drivers","com.mysql.cj.jdbc.Driver")
通过键值对自定义驱动values
//尝试从系统属性"jdbc.drivers"中获取驱动类 try { drivers = AccessController.doPrivileged(new PrivilegedAction<String>() { public String run() { return System.getProperty("jdbc.drivers"); } }); } catch (Exception ex) { drivers = null; }
//3.获取连接
Connection conn = DriverManager.getConnection(url:" ");
//4.获取状态参数
PreparedStatement ps = connection.prepareStatement();
//5.执行操作
int count = ps.executeUpdate();
ResultSet rs = ps.executeQuery();
//6.关闭资源rs.close();
conn.close;