一、extends关键字
JAVA中OOP章节的extends的学习。
1.继承
class 子类 extends 父类{
}
//只能单继承
//继承父类中的非私有的成员
2.权限
修饰类的成员:
属性: 数组,基本类型
方法:
静态
构造方法
内部类:
静态内部类
非静态内部类
public
protected
包
private
3.构造的顺序:
先构建父类对象,再常见子类对象
4.super:
super()
super.成员
5.重写
1)重写必为继承
2)返回值,方法名,参数要相同
3)子类重写方法的权限》=父类的方法
6.多态
父类的引用指向子类的对象
父类的引用调用的方法是 new的那个子类对象的方法 迟绑定的过程
二、开闭原则
对扩展开放,对修改关闭
三、本课代码
1.家务实例
代码如下:
public class Person {
public static void main(String[] args) {
Person p = new Husband();
p.setName("老公1号");
Person w = new Wife();
w.setName("老婆1号");
w.doHouseWork();
//向下转型
((Wife)w).order(p);
Person d = new Daughter1();
d.setName("女儿1号");
((Wife)w).order(d);
Son1 s = null;
((Wife)w).order(s);
}
private String name;
public void doHouseWork() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) {
this.name = name;
}
public Person() {
}
}
class Husband extends Person {
@Override
public void doHouseWork() {
System.out.println(this.getName() + "非常勤快且迅速的开始做家务了。。。");
}
}
class Daughter1 extends Person {
@Override
public void doHouseWork() {
System.out.println(this.getName() + "痛苦的做起了家务。。。");
}
}
class Son1 extends Person {
@Override
public void doHouseWork() {
System.out.println(this.getName() + "十分认真的开始做家务了。。。");
}
}
class Wife extends Person {
@Override
public void doHouseWork() {
System.out.println(this.getName() + "快乐的做起了家务。。。");
}
//开闭原则
//多态的体现
public void order(Person h) {
if (h == null) {
System.out.println("你家没这人!!!");
return;
}
System.out.println(this.getName() + "让" + h.getName() + "做家务");
h.doHouseWork();
//迟绑定
}
}
四、学习小结
理解并且掌握extends关键字的作用与使用方法,体会继承所带来的代码重用效率的提升。