【黑马程序员】继承与多态(四)

来源:互联网 发布:夜梦巴黎 知乎 编辑:程序博客网 时间:2024/06/10 04:25

------------android培训java培训、期待与您交流! ----------------


继承与多态


一、继承

①继承的作用:

I:提高代码复用性

II:让类与类之间产生了关系

注意:I:不能为了简单的获取其他类中的某些功能时就继承,必须是类与类中间存在关系才可以继承

      II:父类中有private修饰的成员时,子类不能继承这些成员

②继承存在时成员的特点

I:成员变量:

1>如果子类中存在非私有的同名成员变量时,子类要访问本类的成员变量时应用this

2>如果子类中存在非私有的同名成员变量时,子类要访问父类的成员变量时应用super

II:成员方法:

1>子类覆盖父类方法时,不能有比父类更严格的访问权限

2>静态方法必须用静态方法覆盖

III:构造方法:

1>构造方法不存在覆盖

2>在对子类对象进行初始化时,父类构造函数也会运行

原因:子类的构造函数第一行会有一条隐式的语句 super()

3>子类访问父类构造方法的原因

父类非私有的数据子类可以直接获取,所以子类对象在初始化时,需要查看父类是如何对这些数据进行初始化的

4>如果要访问父类中指定的构造函数,则子类的构造函数中要手动定义super语句来指定

5>如果父类中没有空参构造函数,则在子类的构造函数中要手增加super语句来指定要访问的构造函数

6>子类的构造函数第一行可以手动指定this语句来访问本来中的构造函数,子类中至少会有一个构造函数会访问父类中的构造函数


注意:super语句一定要定义子类构造函数的第一行。

因此this语句与super语句只可能存在一个


示例:

public class DuoTaiTest {public static void main(String[] args) {//子类引用指向本类对象Student s = new Student(23);//父类引用指向子类对象Person p = new Student(22);System.out.println(p.name);s.eat();s.study();p.eat();}}class Person{String name;//父类空参构造函数public Person(){}//父类非空参构造函数public Person(String name) {super();this.name = name;}public void eat(){System.out.println(this.name+"    "+"Person+++++eat");}}class Student extends Person{int age;//子类空参构造函数public Student(){}//子类非空参构造函数public Student(int age) {super("LI" );this.age = age;}//覆盖父类eat方法public void eat(){//子类调用父类成员方法super.eat();System.out.println(this.name+"    "+"Studert+++++eat");}//本类study方法public void study(){System.out.println(this.name+"    "+"Stundent++++sutdy");}}

运行结果:

LI
LI    Person+++++eat
LI    Studert+++++eat
LI    Stundent++++sutdy
LI    Person+++++eat
LI    Studert+++++eat



二、多态


①多态的体现形式

I:父类引用指向了自己的子类对象

II:父类的引用也可以接受自己的子类对象

②多态的前提

I:必须是类与类之间存在关系,(继承或者实现)

II:必须存在覆盖

③多态的利与弊

利:多态的出现大大提高了程序的扩展性

弊:父类引用只能访问父类成员

④多态中成员函数的特点:

I:在编译时,参阅引用变量所述的类中,是否有调用的方法,如果有则编译通过,如果没有则编译失败

II:在运行时,参阅对象所述的类中是否又要调用的方法

I与II综述:成员方法在多态中调用时,编译参阅左边,运行参阅右边

III:在多态中成员变量的特点:无论编译或运行都参考左边

IV:在多态中,静态成员方法,不论编译或运行都参考左边


------------android培训java培训、期待与您交流! ----------------

详细请查看:http://edu.csdn.net/heima


0 0
原创粉丝点击