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();
}

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1