1、Java与OOP之继承

问题:代码存在重复,违背了“write once,only once”,后期维护带来麻烦!——继承。继承的优点:代码复用,有利于后期的维护,它也是多态的前提!
Java不支持多重继承(C++支持)——维护成本大。

2、Java与OOP之Super关键字

创建子类时,首先隐式调用父类的无参构造函数super();,子类不会继承父类的构造方法;所以父类如果已经创建有参构造方法,需要另外添加无参构造方法!

public JavaTeacher(String name,String school){
    /*this.setName(name);
    this.setSchool(school);*/
    super(name,school);
}

方法重写(Override):重写/覆盖父类方法;另外Overload(函数重载)。

@Override
public void giveLesson() {
    System.out.println("打开Eclipse");
    //调用父类方法
    super.giveLesson();
}

Super关键字的作用:
1、利用super关键字调用父类构造方法;
2、在子类中利用super关键字调用父类方法(public|protected,private不可调用);

一切类的“祖先”——Object(Extends Object

3、Java中的多态及应用
Open-Close原则:当软件的需求发生变化时,我们能够以添加新的代码的方式,而不是修改原来代码的方式来适应需求的更改,如果能够做到这一点,这种设计就满足Open-Close原则!

软件声明周期
可行性分析-》需求分析-》概要设计-》详细设计-》编码-》测试-》部署-》维护

子类可以无条件的给父类赋值,永远都是安全的;父类给子类赋值是危险的!例如:
父类:Teacher
子类:JavaTeacher 、 DnetTeacher

// 1
Teacher t= new JavaTeacher();
// 2
Teacher t= new Teacher();
DnetTeacher t1=(DnetTeacher)t;

多态的本质:
1、存在一个继承关系;
2、存在一个父类向子类赋值的过程;
3、一定存在重写方法;

多态的实质:
一个抽象的指令,让一组具有相同行为但具有不同内容的个体协同工作的一个过程;

标签: none

评论已关闭