禹娜day21

2020年12月9日

Object类

什么是Object类

Object类是java定义API.该类表示所有类的最高层。Object类没有父类,该类是所有类的父类,如果一个类没有显示继承父类,默认继承Object类。Object类中定义的属性和方法每个类都继承了。

Object类中重要的方法。equals() toString()

方法重写

什么是方法的重写

子类从父类继承后,如果子类发现父类的方法不能满足子类的需要,此时子类可以重新在子类的类内再次定义一遍从父类继承的方法,这种重新定义父类方法的方式叫方法重写。

方法重写必须满足的要求
  1. 重写方法与被重写方法必须有相同的方法名称。
  2. 重写方法与被重写方法必须有相同的参数列表。
  3. 重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。

​ 4.重写方法时不能缩小被重写方法的访问权限。

方法重载与方法重写的区别

重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与返回值类型无关。

重写涉及的是子类与父类之间的同名方法,要求方法名相同,列表参数相同,与返回值类型相同。

继承中的protected

什么是访问修饰符

是访问修饰符,是专门为继承而涉及的访问修饰符。protected修饰的属性或方法在同包或者子类中可以被访问。

package cn.itlaobing.oop;
public class PersonP{
    Protected String name;
}

package itliaobing;
import cn.itlaobing.oop.Person;
public class Worker extends Person{
    Public static void main(String[] args){
        Worker w=new Worker();
        w.name="哈哈"
    }
}


//Worker类与Person类不在同一个包中,但是worker类是Person类的子类,而person类中的name属性是protected访问修饰符修饰的,因此在子类Worker中可以访问name属性。

多态

多态是面向对象的特征之一。

什么是多态?多态是指调用同一个方法可能有多种输出结果。每一种结果就是一种形态。

在程序设计术语中,它意味着一个特定类型的变量。可以引用不同类型的对象。并且能自动地调用引用的对象方法。也就是根据用到不同的对象类型,响应不同的操作。

1.当父类的引用指向子类对象后,在父类引用调用方法时,只能调用子类从父类继承的方法或者是被子类重写的方法

2、父类不能调用子类新增的方法,因为不知道子类新增了什么方法。

3.如果子类重写了父类的方法,那么在父类引用调用的就是子类的方法。(父类引用指向哪个子类就调用哪个子类的方法。)

​ 父类引用指向子类对象时需要类型转换

​ * 父类引用 = 子类对象 不需要强制转换 Pet pet = dog;

​ * 子类引用 = 父类对象 需要强制转换 Dog dog =(Dog) pet;

instancesof运算符

if(pet instanceof Cat) {
    Cat cat = (Cat) pet;
    cat.climbTree();
}

Instanceof运算符用于判断一个引用是否指向某个类的实例,返回boolean值

评论