Supper,继承,多态

Supper:

1:当子类中 方法或属性 跟父类中的重名 ,Supper 来 访问父类的 属性,方法,但是不能访问私有类型。

2:访问父类的构造器,但是要注意只能放在构造器第一句,并且只能出现一句。

3:找方法属性时候,先找本类,再找父类,一直往上级父类寻找,直到找到。或者到了Object类还没有找到,那么将进行 报错。

4:this 与 supper 的区别在于 两者在 访问(寻找)或调用 , 方法、属性的起点不一样,this 在本类开始往上级父类寻找,supper则是从父类往更上级父类里面寻找。

方法重写/覆盖:

1:重写指子类里面的一个方法跟父类中的某个方法 名字、类型、参数 全部都一样,那么就说子类里面的这个方法重写了父类中的方法。

注意:这里的类不仅可以是父子类关系,还可以是爷孙类关系。

2:特意强调重写方法注意: 子类的返回类型必须跟父类一样,或者其返回类型是父类返回类型的子类。

子类里面的方法不可以缩小父类方法的权限。(public->protected->默认->private)

多态:

学编程一定要注意区分 编译类型 ,运行类型

1:多态的前提:两个类存在继承关系。

2:向上转型: 父类类型 引用名 = new 子类类型();

特点: 编译看左边,运行看右边。 编译跟运行结果分开的,最终结果看子类的具体实现。 它不能调用子类特有的成员。

3:向下转型: 子类类型 引用名 = (子类类型)父类引用;

注意理解 特点:只能强行转换 父类的引用,不能强转父类对象。 要求父类的引用必须是指向当前目标类型的对象 。 可以调用子类的特有成员。

Anmial a1 = new Cat();

那么 Cat c1 = (Cat) a1;

而 Dog d1 = (Dog) a1; × Cat c1 = (Cat) Anmial; ×

4:属性: 属性没有重写之说,属性的值要看编译类型

5:instanceOf :比较操作符,用于判断对象类型是否为 XX类型 或 其子类型。

if(p instanceof student ) 意思是: p 的运行类型如果·是student

6:动态绑定机制:

①当调用对象方法时候,该方法会和该对象的运行类型(等号右边)绑定。

②当调用对象属性时候,没有动态绑定机制,哪里声明哪里使用。

( 编译、运行; )

equals方法:

1: == 与 equals 对比: (面试题)

①:== 基本类型、引用类型它都可以判断。判断基本类型时候,判断的是是否相等。 判断引用类型时候,判断的是地址是否相等,即判断是不是同一个对象。

②:equals(是总爸爸Object 里面的方法) 只能判断引用类型。它默认是判断地址是否相等,但子类往往会重写该方法,用于判断内容是相等。列如Object的子类 :String,Integer。

简单的说就是 没有重写比较的是地址,重写了比较的是值。

Scanner sc = new Scanner(System.in);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值