java的继承,多态,重载

一.方法重载

定义:多个方法有相同的名字,编译时能识别出来。这些方法的签名不同,或者是参数的个数不同,或者是参数类型不同。通过方法重载能实现多态。方法返回值类型,修饰符类型,和重载没有关系,可以与父类不同。父类和子类的关系里,包含了一条里氏替换原则—也就是Is-A的关系。也就是说父类能够被替换成子类,那么父类所能接受的任何参数子类也要能够接受。这要求子类要求只能比父类更宽松,不能更严格。

二.继承

定义:继承是指子类重写父类或超类。父类包括所有直接或间接被继承的类。一个类只能有一个直接父类。

当一个子类要调用本类或者父类的构造方法时,使用this或者super关键字。this调用本类的其他构造方法,super调用直接父类的构造方法,this或super语句要放在第一条语句,有且只能有一条。如果没有this或super,则编译器自动加上super(),即调用直接父类不带参数的构造方法。因为必须令所有父类构造方法都得到调用,否则整个对象的构建就可能不正确。

三.多态

多态是指用多各类去实现同一个接口。接口是某种特征的约定。定义接口 interface,所有方法都自动是public abstract。实现接口implements,由不同父类继承而来的子类也可以实现同一个接口。接口也有自己的方法和属性,但是在接口中声明的方法默认是抽象的。一个类要实现接口,就要实现接口中声明的方法。接口不能够被实例化,因为接口中的方法都是抽象的,是没有方法体的,不能产生具体的实例,但可以使用接口类型的引用指向一个实现了该接口的对象。extends可以继承一个接口,但继承之后仍然是一个接口,接口只有用implements继承的类才能有具体的实现。    

这里以一个比较接口为例说明接口的用法:

public class Employee implements Comparable<Employee>{
private int id;
private String name;
private int age;
public Employee(int id,String name,int age){
this.id=id;
this.name=name;
this.age=age;
}

public int compareTo(Employee o){
if(id>o.id){
return 1;

}
else if(id<o.id){
return -1;
}
return 0;
}

public String toString(){
StringBuffer sb=new StringBuffer(30);
sb.append(id);
sb.append(name);
sb.append(age);
return sb.toString();}}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值