黑马程序员——day08面向对象(三)接口,多态
来源:互联网 发布:梦梦奈同类电脑软件 编辑:程序博客网 时间:2024/06/07 07:17
---------------------- android培训 java培训 期待与您交流! ----------------------
1./*
多态:可以理解为事物存在的多种体现形态。
人:男人,女人
动物:猫,狗。
猫 x = new 猫();
动物 x = new 猫();//类型提升。向上转型。
1,多态的体现
父类的引用指向了自己的子类的对象。
父类的引用也可以接受自己的子类对象。
2,多态的前提
必须是类与类之间有关系。要么继承,要么实现。
通常还有一个前提:存在覆盖。
3,多态的好处
多态的出现大大提高了程序的扩展性。
4,多态的弊端
虽然提高了扩展性,但是只能使用父类的引用访问父类中的成员。
5,多态的应用
6,多态的出现代码中的特点(多态使用的注意事项)
简单的说:成员函数在多态调用时,编译看左边,运行看右边。
在多态中,成员变量的特点:
无论编译和运行,都参考左边(引用型变量所属的类)
在多态中,静态成员变量的特点:
无论编译和运行,都参考左边
Animal a = new Cat();//类型提升。向上转型。
a.eat();
//如果想要调用猫的特有方法时,如何操作?
//强制将父类的引用。转成子类类型。向下转型。
Cat c = (Cat)a;
c.catchMouse();
//千万不要出现这样的操作,就是将父类对象转成子类类型。
//我们能转换的是父类引用指向了自己的子类对象时,该应用可以被提升,
也可以被强制转换。
//多态自始至终都是子类对象在做着变化。
if(a instanceof Dog)如果a是狗的实例 Dog d = (Dog)a; d.kanjia();
*/
/*
需求:数据库的操作。
数据是: 用户信息
1.连接数据库。JDBC Hibernate
2.操作数据库
c create r read d update d delete
*/
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,关闭连接
}
}
public class DBOperate {
public static void main(String[] args){
//UserInfoByJdbc ui = new UserInfoByJdbc();
UserInfoDao ui = new UserInfoByHibernate();
ui.add(user);
ui.delete(user);
}
}
2.equals toString 最好需要复写
public String toString(){retrun " "+x;};
- 黑马程序员——day08面向对象(三)接口,多态
- 黑马程序员-day08-面向对象(多态)
- 黑马程序员—面向对象(三)
- 黑马程序员-Java面向对象-day08
- 黑马程序员-day08-面向对象(Object类)
- 黑马程序员——Java面向对象(三)—抽象类、接口
- 黑马程序员—面向对象(接口)
- 黑马程序员——面向对象的继承、接口、多态
- 黑马程序员——面向对象(继承、抽象、接口)
- 黑马程序员——day08
- 黑马程序员——面向对象特征三:多态
- 黑马程序员——面向对象(三)
- 黑马程序员——Java面向对象(三)
- 黑马程序员——Java面向对象知识点(三)
- 黑马程序员——面向对象(三)
- 黑马程序员——JAVA 面向对象总结(三)
- 黑马程序员——面向对象(三)
- 黑马程序员——Java基础-------面向对象(三)
- 黑马程序员——day07面向对象(二)
- C++ 禁止任务管理器的另一种方法
- 通过addDataScheme("file") 浅析android事件过滤策略
- 埋藏
- bgproperties属性
- 黑马程序员——day08面向对象(三)接口,多态
- 初学Android,手势缩放图片(四十八)
- CRONTAB格式,命令
- PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
- android应用程序安装后自动打开
- 动态规划时间规整简介入门
- struts1.1 配置文件属性
- ubuntu 12.04 更新源
- 【原创】基于ACE Proactor框架下高并发、大容量吞吐程序设计既最近的一个产品开发总结