您的位置:首页 > 其它

继承,接口,抽象类

2008-09-16 19:06 239 查看
1. 封装(数据隐藏的具体方法)
隐藏类的实现细节,迫使用户去使用一个接口去访问数据使代码更好维护
private,本类可见,可用。
public,所有的可见
protected,继承关系的子类和本包可见
无修饰的(friendly)本包可见(package)
防止继承:final 的类和方法
不可扩展的类称作final类
final方法的作用:
高效率
安全
2. super & this
super的两个使用方法:
对超类方法的调用;
对超类构造函数的调用
this的使用方法:
对本身方法的调用;
对本身其他构造函数的调用
3. 重载 & 覆盖
重载的概念:
拥有相同的方法名,通过其他的方式,在同一个作用域工作
返回值重载
参数重载
构造函数的重载
普通方法重载

方法的覆盖:
子类中返回值和参数相同的方法将覆盖超类的方法
相同名称,不同参数的被“简单覆盖”编译器将使用参数来决定具体所指。

方法重写(override):子类继承父类,并在子类中定义一个与父类中的方法名称和参数都相同的方法(返回类型可以不同),就会覆盖父类中的方法,这就是方法重写,并且“重写”只有在类继承的时候才会发生。
方法重载(overload):同一个类中有两个或两个以上的方法,方法名相同,参数列表不同,就构成方法重载。同时有继承关系的类,子类也可以重载父类的方法。

函数名一样 参数列表一样 只有返回值不一样 java编译系统仍会识别为是一个函数而报错

重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,
然后这些同名函数就成了不同的函数
1、在同一个类中;
2、方法名相同;
3、参数个数或者参数类型不同【如果参数类型和个数相同,但类型顺序不同也是重载】
(例:void overl(String s,double d) 和void overl(double d,String s)也是重载 )
4、与返回类型无关

Java的单继承性(不支持多重继承,需要的时候用接口来实现)
构造函数不能被继承

4. 抽象类

只给出方法头,而不必给出方法体。即方法的具体实现。

可以在方法和类名前面加上abstract关键字,表示这是一个抽象类。

抽象类中可以没有抽象方法,但类中有抽象方法,类必须声明为抽象类型。

抽象类可以有具体方法。

抽象类不能被实例化,就是不能创建对象。

继承抽象类的子类必须重写抽象类中的所有抽象方法。

5.接口

接口(interface)是抽象方法和常量值的定义的集合

只包含常量和方法的定义,而没有变量的方法的实现。可看作是特殊的抽象类。

接口中定义的属性必须是public statc final的

接口中定义的方法必须是public abstract的,

因此这些修饰符可以部分或全部省略。因为不写也会自动添加这些修饰符

接口可以被多重实现

接口可以继承其他接口,并添加新的属性和抽象方法

接口间支持多重继承,类只能单继承(父类)多重实现(接口)

interface A{ public void fa();}
interface B{ public void fb(); }
interface C extends a,b{ public void fc(); }
class D impliments C{
public void fa(){...}
public void fb(){...}
public void fc(){...}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: