为什么使用继承
方便修改代码
减少代码量
如何使用继承
1.编写父类
class Pet {
//公共的属性和方法
}
2.编写子类,继承父类
class Dog extends Pet {
//子类特有的属性和方法
}
class Penguin extends Pet {
}
子类访问父类成员
1.访问父类构造方法
使用super关键字,
super代表父类对象
super();
super(name);
//在子类构造方法中调用且必须是第一句
2.访问父类属性
super.name;
3.访问父类方法
super.print();
在何处使用继承
1.继承与真实世界类似
符合is-a关系的设计使用继承
2.继承是代码重用的一种方式
将子类共有的属性和行为放到父类中
方法重写
构造方法不能被继承,因此不能重写
方法重写的规则:
1.方法名相同
2.参数列表相同
3.返回值类型相同或者是其子类
4.访问权限不能严于父类
方法重载与方法重写
super关键字来访问父类的成员
1.super只能出现在子类的方法和构造方法中
2.super调用构造方法时,只能是第一句
3.super不能访问父类的private成员
Object
Object类被子类经常重写的方法
Object类的equals()方法
比较两个对象是否是同一个对象,是则返回true
操作符==
简单数据类型,直接比较值。如12
引用类型,比较两者是否为同一对象
(1)Object类的equals()方法与没区别
(2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()
(3)Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
抽象类
abstract也可用于方法——抽象方法
1.抽象方法没有方法体
2.抽象方法必须在抽象类里
3.抽象方法必须在子类中被实现,除非子类是抽象类
public abstract void print();
final用法
1.使用final类
public final class Penguin extends Pet {
//…
}
2.使用final方法
public final void print () {
//…
}
3.使用常量
public class Penguin {
final String home ="南极";// 居住地
public void setHome(String name){
this.home=home; //错误,不可再赋值
}
}
总结