Selenium-CoreJava Interfaces in JAVA!!!!
Objective: Find out the reusable methods and create a super class for all the browsers like IE,FF,CH.
public abstract class WebDriver
{
public abstract void openBrowser(String url);
public abstract void closeBrowser();
}
Interface Definition:
-----------------------------
If the class contains 100% abstract methods then the class is defined as interface.
public interface WebDriver
{
public void open(String url);
public void close();
}
1. An interface contains 100% abstract methods.
2. In interface methods are by default public and abstract.
public interface WebDriver
{
void open(String url);
public abstract void close();
}
3. In interface, variables are 'public static final' by default.
public ->Accessible everywhere
static->Classname.variable
final->Constant. Once intialized we cannot re-assign the new value;
4. The final variables in interface are intialized at the time of declaration.
int i;//declaration
i=10;//intialization or Assignment
int i =10;//Declaration and intialization.
5.A class uses an interface should use an keyword called 'implements'.
IE,FF,CH
public class IEDriver implements WebDriver
{
void open(String url){}
public void close(){}
}
public class FFDriver implements WebDriver
{
void open(String url){}
public void close(){}
}
public class CHDriver implements WebDriver
{
void open(String url){}
public void close(){}
}
6. A class can implement multiple interfaces, but extends only one class at a time.
A interface extends an another interfaces
7. A class together can use implements and extends keywords together.
public class ThreadEx extends ClassB implements Runnable,InterfaceA
{
}
If a class is implementing an interfaces then we can write as follows:
InterfaceName refV = new ClassName();
WebDriver driver = new FFDriver();
driver.open("http://www.google.com");
driver.close();
final variables are constants
--------------------------------------
public final int i =20;
i=10;// not possible i is final
final classes cannot be extended
----------------------------------------
public final class String
{
}
public class A extends String// cannot extend an final class
{
}
final methods cannot be overriden
--------------------------------------------
public final void equals()
{
}
@Override:
-------------------
Whenever the same method name with same parameters available in the super class and
subclass or interface and subclasses.. those methods are overriden methhods.
@Override is an annotation which is an special instruction to the compiler.
0 comments:
Post a Comment