I want to configure local domain zone in bind9 like "example.com" for local lan to add some hosts only. but if I configure that I am unable to connect to "example.com" which is public registered domain. how can I redirect in bind9.
If you do not have ownership of the domain in question, you should never do this; it is considered rather rude. For exactly example.com, however, when testing things, that's fine.
DNS clients will ask their configured nameservers for a domain name. If that server does not have any knowledge of the domain they're querying, then it must go and ask the root servers for more information about the location of the data. The resulting query process is somewhat involved, but at any rate, unless you're the official owner of example.com, that's not going to work. If the server(s) that are being queried first do have the required information though, then they don't need to query the root servers but can just return the wanted information.
In other words, you need to configure the machines you want to query your zone with your bind instance; if you've done that, it should just work.