继承
了解继承
在设计继承时,你会把共同的代码放在某一个类中,然后告诉其他类说此类是他们的父类
继承的范例
public class Doctor
{
void treatPatient()
{
//执行检查
}
}
public class FamilyDoctor extends Doctor
{
void giveAdvice()
{
//给出诊断
}
}
继承的意义
1.避免了重复的程序代码
2.定义出了共同的协议
父类和子类
父类:比较抽象
子类:比较具体
例如:可定义一个类叫猫类,而它的子类可以是橘猫类,狸花猫类,英短类等等
总之父类比子类要抽象的多
还有就是子类只能继承父类里非私有的部分
子类可以对继承自父类的方法进行覆盖,也可以对继承自父类的实例变量进行赋值
覆盖:覆盖的意思是由子类重新定义继承下来的方法以改变或延伸此方法的行为
覆盖的规则:
1.新的方法必须要和被覆盖的方法有相同的方法名,相同的参数类型,返回类型也要一样
2.不能降低方法的存取权限
方法的重载:方法的名字相同其他不同的两个方法
重载的规则:
1.返回类型可以不同也可以相同
2.参数类型必须不同
3.存取权限可以随意更改
例如:你不能把一个public的方法,在覆盖后改成private的方法
如果子类想调用父类中的未被覆盖的方法可以使用super这个关键字
使用方法:super.父类中的方法名;
多态的一种表现
在未使用多态前引用的类型必须和对象的类型一样
Dog myDog=new Dog[ ];
但在多态下这两者可以不同
Animal myDog=new Dog( );
(Dog 是Animal的子类)
也就是说运用多态时,引用类型可以是实际对象的父类
在以引用变量作为参数和返回值时也是这样,就是当你把参数声明成父类类型时,你就可以在运行时传入任何的子类对象,也就是说当你引入新型子类时就只需要将其继承在该父类下,而不用去修改其它程序。