继承
继承是一个对象获得另一个对象属性的过程。继承之所以重要是因为它支持了按层分类的感念,即类层次结构。 例如:
class A{
String name;
String sex;
public void give(){System.out.println("Hello")}
public void give(int i){System.out.println("int")}
public void give(char c){System.out.println("char")}
}
class B extends A{
public void give(){System.out.println("Hello")}
}
上面代码是说:有A和B2个类,B类继承了A类的属性和方法,这样A称为父类,B称为子类。
在父类中有give()方法,在子类中也有give()不带参数的方法,称子类把父类的方法重写了。
如果父类中有多个同样的方法而参数不同,那么这样的方法叫做方法的重载。编译区分是按参数+方法名来区分开的(give,int-give,char-give)。只能在同一个类中发生。
在继承中,父类中只要有private修饰符修饰属性和方法的,那么它是不能被子类继承的,那是父类私有的。
一个类的私有方法只能有那个类的公有方法来访问。
抽象类
在一个类中出现abstract修饰符修饰一个没有实现的方法必定是个抽象类。 例如:
abstract class A{
abstract public void give();
}
抽象类A里面有个未实现的give抽象方法。
一个子类继承一个抽象类,子类必须重写抽象类中未实现的抽象方法,如果不重写,那么这个子类也是一个抽象类。
在JAVA中,如果要防止类被继承或是方法被重写,可以用关键字final.
用final修饰符修饰的类是最终类,方法是最终方法,类是不能被继承,方法是不能被重写的。
接口 是抽象类的一个特例。
使用接口的好处有2点:
1. 可以搭建底层容器框架
2. 可以便于程序的扩展
在接口类中只存在final修饰的常量和public修饰的公有未实现的方法。 例如:
public interface A{
int i = 10;
void give();
}
在你声明变量时,必须给变量一个初始值,因为接口会默认变量I为final修饰的常量。在上面代码中的give方法是个缺省方法,它会给你默认为public修饰的公有方法,在接口里定义的方法都必须是公有的接口中的变量都必须是常量。
一个类或多个类都可以实现你定义的接口,需要在类定义包含implements子句,然后创建由接口定义的方法,方法前面必须+public。
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}