- /*
- 多态介绍和总结,主板示例,Object 类
- */
- 4.9 多态
- 可以理解为事物存在的多种体现形态。
- 1.多态的体现:父类引用指向了自己的子类对象。
- 父类的引用可以接收自己的本类对象。
- 2.多态的前提:
- 1.必须是类与类之间有关系,要么继承,要么实现。
- 2.通常还有一个前提:存在覆盖。
- 3.多态的好处
- 多态的出现大大的提高了程序的扩展性。
- 多态的bei端:提高了扩展性,但是只能使用父类的引用访问父类中的成员。
- 强制将父类的引用。转成子类类型。向下转型。Cat c = (Cat)a;
- 不可以将父类的对象转成子类类型。
- 多态自始至终都是子类对象在做着变化。转换前先 a instanceof Cat 判断一下。
- a instanceof Cat :此处a 的实例是Cat吗?
- 4.多态的应用
- 5.多态使用的注意事项(特点)
- 1.在多态中成员函数的特点:
- 在编译时期,参与引用型变量所属的类中是否有调用方法,有就通过,没有就编译失败。
- 在运行时期,参阅对象所属的类中是否有调用的方法。
- 简单总结:成员函数在多态调用时,。。。编译看左边,运行看右边。
- 静态函数时,编译运行都看左边。
- 在多态中成员变量无论编译和运行,都参阅左边。
- //主板示例
- interface PCI
- {
- void close();
- void open();
- }
- class MainBoard
- {
- public void run(){
- System.out.println("mainboard run");
- }
- public void usePCI(PCI p){
- if (p!=null)
- {
- p.open();
- p.close();
- }
- }
- }
- class NetCard implements PCI
- {
- public void open(){
- System.out.println("netcard run");
- }
- public void close(){
- System.out.println("netcard close");
- }
- }
- class SoundCard implements PCI
- {
- public void open(){
- System.out.println("soundcard run");
- }
- public void close(){
- System.out.println("soundcard close");
- }
- }
- class DuoTaiDemo5
- {
- public static void main(String[] args)
- {
- MainBoard mb = new MainBoard();
- mb.run();
- mb.usePCI(null);
- mb.usePCI(new NetCard());
- mb.usePCI(new SoundCard());
- }
- }
- 需求:数据库的操作
- 1.连接数据库。JDBC Hibernate
- 2.操作数据库。
- c create r read u update d delete
- 3.关闭数据库连接。
- interface UserInfoDao
- {
- public void add(User user);
- public void delete(User user);
- }
- class UseInfoByJDBC implements UserInfoDao
- {
- public void add(User user)
- {
- 1.JDBC连接数据库
- 2.使用SQL添加语句添加数据
- 3.关闭连接。
- }
- public void delete(User user)
- {
- 1.JDBC连接数据库
- 2.使用SQL删除语句删除数据
- 3.关闭连接。
- }
- }
- class UserInfoHibernate implements UserInfoDao
- {
- public void add(User user)
- {
- 1.Hibernate连接数据库
- 2.使用SQL添加语句添加数据
- 3.关闭连接。
- }
- public void delete(User user)
- {
- 1.Hibernate连接数据库
- 2.使用SQL删除语句删除数据
- 3.关闭连接。
- }
- }
- class DBOperate
- {
- public static void main(String[] args)
- {
- //UserInfoByJDBC ui = new UserInfoByJDBC();
- //ui.add(user);
- //ui.delete(user);
- UserInfoDao ui = ;
- ui.add(user);
- ui.delete(user);
- }
- }
- Object 类 是java所有对象的上帝。每个类都使用object作为超类。
- 该类中定义的是所有对象都具备的功能。
- equals比较的是地址。
- 重写 object的equqls,要注意判断和转换动作
- ` public boolean equals(Object obj)
- {
- if (!(obj instanceof Demo))
- {
- return false;
- }
- Demo d = (Demo)obj;
- return this.num == d.num;
- }
- object 类的 toString()方法。
- 默认显示 类名和哈希值。
- 一般要覆盖toString()方法。显示自己的内容
- public String toString(){
- return "demo:"+num;
- }
多态介绍和总结,主板示例,Object 类
最新推荐文章于 2022-05-02 14:37:18 发布