继承和多态

来源:互联网 发布:淘宝双十一c店报名条件 编辑:程序博客网 时间:2024/06/05 08:51

1继承:

1) 子类将父类的所有东西都继承过来,(私有的成员变量和成员方法也会继承,但是不能使用)

2) 子类不能继承构造方法,但是通过super关键字

3) 继承的体现就是is a 的关系,什么是什么的一种.比如:猫是动物的一种.

4) 当子类的局部变量和子类的成员变量和父类的成员变量名一样时,就近原则,访问时,离那个变量近,就是访问那个变量.(this,super)

5) this代表的是当前的对象,super代表的是父类的对象,所以有this就访问的是当前对象的成员变量或者当前成员方法.

6) 子类的构造方法默认的是访问的是父类的无参构造方法;子类构造方法默认的第一句话是super().子类对象初始化时,先对父类进行初始化,父类初始化完毕后,子类才开始进行初始化.

7) 方法重写:子类继承父类时,出现了和父类一摸一样的方法,就叫方法重写,如果父类的方法被private修饰,则不能被重写,如果父类的方法是static,则子类复写时,必须也是static的;访问权限不能比父类的方法低.


2代码块:

1)静态代码块:出现在类成员位置,用static修饰,静态代码块是随着类的加载而加载,并且只加载一次.子类和父类都有静态代码块时:创建子类对象时,先父类静态代码块-->子类静态代码块-->父类初始化-->子类初始化

2)构造代码块:在类成员位置,在类的构造方法前执行,只要是将类的构造方法,相同的方法提取出来,放在构造代码块中.

构造代码块也主要是对对象进行初始化,每生成一个对象就运行一次构造代码块.

3)局部代码块:出现在局部位置,主要是限制局部变量的生命周期.


3多态:

1)多态的前提条件:必须有继承;必须子类重写了父类的成员方法;父类引用指向子类对象(重点).

2)成员变量:编译看左,运行看左;

成员方法:编译看左,运行看右;(成员方法会被重写,所以运行时,运行的是子类的方法)

静态成员方法:编译看左,运行看左(静态方法和类有关,不能算上方法重写)

3)多态的特点:提高了代码的扩张性,提高了代码的维护性.

4)多态的弊端:父类的引用不能使用子类中特有的方法,如果想使用子类中的特有方法,必须向下转型.

Person p = new Student() ;      Student s = (Student) p;(向下转型)


4Final关键字:

1)final 代表:最终的,终态的,不可修改的.

2)final修饰类:这个类不能被继承,final修饰成员方法:这个方法不能被重写;final修饰变量:这个变量的值不能被改变.

3)final修饰基本数据变量:这个变量的值不能被修改,如果这个值在初始化的时候没有被赋值,则只能被赋值一次,在成员变量时,必须在构造方法结束前,完成赋值.

final修饰引用类型:在堆内存中的地址值不能改变,但是里面的成员变量的值可以改变.



原创粉丝点击