java 中 this的用法:只能是对本类对象的使用。即指,对成员变量、构造方法、成员方法的访问使用。
super :只能对父类的内存空间标识进行访问。内存空间标识,即指:内存空间地址,因为没有另外开辟一个对象,相当于包含在已开辟的子类对象中。总体用大白话讲,就是对父类对象的引用。
java 继承中方法重写:必须是子类出现了和父类一模一样的方法。方法名、参数列表:参数类型,参数类型的顺序、返回值的类型 这些都必须一样。
方法的重写可以加强父类的功能性。这里就要加一个super.方法名();
子类重写的方法中,用快捷键的话会自动生成super.方法名();注意:super在这儿的这句话可以省略,和构造方法中的不一样,子类构造方法中引用父类构造方法是必须要加的, 因为要对父类的成员变量进行初始化。
java 的多态 前提条件:1. 要有继承关系
2. 要有方法重写
3. 要有父类引用指向子类对象 是 Animal a = new Cat(); 不是 Cat cat = new Cat();
那么java的多态体现在哪儿呢? 我认为是成员的访问 Animal a = new Cat(); 成员变量: 编译看左边, 运行看左边
成员方法: 编译看左边, 运行看右边
多态的弊端 父类引用不能直接访问子类特有的成员(成员变量、成员方法) 因为编译看左边,解决向下转型。
多态的前提之一是要对父类方法的重写,但是如果不重写的话, Animal ani1 = new Cat(); 直接用ani1.父类方法名; 并不会报错。语法上没有问题,但这已经不是多态。