2020.12.09韩德云
2020.12.08
一, object类
1, 介绍:
object类是Java自定义的API,它是所有类的最高层,object没有父类,Object就是其他所有类的父类.
如果一个类没有显示继承父类,则默认继承了object类.即继承了object类的所有属性和方法.
2, object类中的重要方法
equals()
tostring()
二, 方法重写
定义:
子类继承父类后,如果子类继承的方法不能满足子类的需求,那么子类可以在子类类内重新定义从父类继承的方法.这种子类重新定义父类方法的方式叫做方法重写.
方法重写: override
方法重载: overload
1, 方法重写的规则
1) 重写方法和被重写方法必须具有相同的方法名称;
2) 重写方法和被重写方法必须具有相同的参数列表;
3) 重写方法的返回值类型必须和被重写方法的返回值类型相同,或者是被重写方法的返回值类型的子类;
4) 重写方法不能缩小被重写方法的访问权限;
2, 方法重载与方法重写的区别
三个方面的区别 : 方法名,参数列表,返回值类型
方法重写(override) : 是子类和父类之间的同名方法,要求方法名相同,参数列表相同,返回值类型相同.
方法重载(overload) : 是同一个类中的同名方法,要求方法名相同,参数列表不同(参数类型不同或参数个数不同或参数顺序不同),与返回值类型无关.
三, 继承中的protected
protected的解释说明:
protected首先是访问修饰符,是专门为继承而设计的.protected修饰的属性或方法可以在同包或子类中被访问.
例:
package cn.itlaobing.oop; //创建包
public class Person { //创建Person类
protected String name; //修饰属性
}
package itlaobing; //创建另外一个包
import cn.itlaobing.oop.Person; //导入第一个包
public class Worker extends Person { //继承
public static void main(String[] args) {
Worker w =new Worker();
w.name="dd";
}
}
解析:Worker类和Person类不在同一个包中,但是worker是Person类的子类.父类中修饰name属性的修饰符是protected,所以可以在子类Woerker中访问name属性.
四, 多态
多态是面向对象的三大特征之一. 其他两大特征 : 封装,继承.
1, 多态的定义
多态就是多种形态,指一个行为有多种表现.
多态是指调用同一个方法可能有多种输出结果。每一种结果就是一种形态.
2,多态的使用规则
多态:父类的引用指向子类实例
* 当父类的引用指向子类对象后,在父类引用调用方法时,
* 只能调用子类从父类继承的方法或者被子类重写的方法(父类知道子类中有什么方法就能调用什么方法)
* 父类不能调用子类新增的方法,因为父类无法知道子类新增了什么方法
* 如果子类重写了父类的方法,那么父类引用调用的就是子类的方法(父类引用指向哪个子类就调用哪个子类的方法)
*
* 父类引用指向子类对象时需要类型转换
* 父类引用 = 子类对象 不需要强制转换 Pet pet = dog;
* 子类引用 = 父类对象 需要强制转换 Dog dog =(Dog) pet;
* 多态一定存在于方法重写中,
* 多态一定存在于父类引用指向子类对象中,父类引用指向哪个子类就能调用哪个子类的方法
* 方法重写实现了多态
3, 类与类之间有三种关系
* is a 公共汽车 is a汽车 继承关系,表名子类与父类是同一种类型
* use a 人 use a 铁锹
* has a 人 has a 胳膊
4, Instenceof运算符
instenceof运算符用于判断一个引用是否指向一个类的实例,返回blooean值.
代码:
if(pet instanceof Cat) {
Cat cat = (Cat) pet;
cat.climbTree();
}
评论留言