day08多态介绍和总结,主板示例,Object 类

/*
多态介绍和总结,主板示例,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;
		}








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值