java方法重写和多态

1、方法重写

1.在继承关系中,方法名相同,参数列表也一样,覆盖或覆写

2.重载:方法名相同,参数列表不同

3.子类根据自己的需要,定义特定的自己的行为,即沿袭父类的功能名称,又跟据子类的的需要重新实现父类的方法,从而进行扩展增强

4、总结

1.父类和子类之间方法名相同,参数列表也相同

@Override写在方法前面,用来检查是否是有效的正确的覆盖重写

2.子类方法的返回值类型必须小于等于父类方法的返回值类型(小于其实就是它的子类)

java.lang.Object类是所有类的公共的最高父类(祖宗类),java.lang.String就是Object的子类

如果返回值类型时基本数据类型和void,那么必须相同

3.子类的方法的权限必须大于或等于父类方法的权限修饰符

public>protected>默认>private

4.几种特殊的方法不能重写

静态方法不能重写,私有等在子类中不可见的方法不能重写,final方法不能重写

5、Object类

toString()返回当前对象本身的相关信息,按字符串对象返回

equals()比较两个对象是否是同一个对象,是则返回true

6、多态

1.是指同一行为,具有多个不同变现形式

2.前提

继承父类或实现接口,方法的重写,父类引用指向子类对象

3.格式

父类类型 变量名=new 子类对象;

变量名.方法名();这个方法是父类中声明,子类中重写的方法

4.多态体现

编译时,看父类,只能调用父类声明的方法,不能调用子类扩展的方法

运行时,看子类,一定是执行子类重写的方法体

5.多态的好处

1. 在实际开发过程中,⽗类类型作为⽅法的形式参数, 传递⼦类对象给⽅法,进⾏⽅法的调⽤ ,更能体现 出多态的扩展性和便利性

7、抽象类

1.抽象:即不具体,或无法具体

2.抽象方法:没有方法的方法

3.抽象类:被abstract修饰的类

4. 语法

1. 抽象类

1. [权限修饰符] abstract class 类名{}

2. [权限修饰符] abstract class 类名 extends ⽗类{}

2. 抽象⽅法

1. [权限修饰符] abstract 返回值类型 ⽅法名([形参列表 ]);

1. 注意抽象⽅法,没有⽅法体

5. 继承抽象类的类,必须重写⽗类的抽象⽅法,否则,该⼦类 也必须声明为抽象类,最终,必须有⼦类实现该⽗类的抽象 ⽅法,否则,最初始的⽗类到最终⼦类都不能创建对象,就 失去了意义

7. 注意事项

1. 抽象类不能创建对象,如果创建,编译⽆法通过,会报 错,只能创建⾮抽象⼦类的对象

2. 抽象类中,可以有构造 ⽅法,是供⼦类创建对象时,初 始化⽗类成员变量的使⽤⽤的

3. 抽象类中,不⼀定包含抽象⽅法,但有抽象⽅法的类必 定是抽象类

4. 抽象类的⼦类,必须重写抽象⽗类的所有抽象⽅法,否 则编译⽆法通过,除⾮该⼦类也是抽象类

9. ⽗类与⼦之间的类型转换

1. 向上转型

1. 多态本⾝就是⼦类类型向⽗类类型(向上)转换的过 程,这个过程是默认,⽗类的引⽤,指向⼦类的对象, 这就是向上转型

2. 向下转型

1. ⽗类类型向⼦类类型转换的过程,这个过程是强制

2. ⼦类类型 变量名=(⼦类类型) ⽗类变量名;

3. Animal a=new Cat(); 向下转型 Cat c=(Cat) a;

4. 就是为了调⽤⼦类⾥特有的⽅法

10. instanceof

1. 为了避免ClassCastException的发⽣,给引⽤变量做类型校 验,只要⽤instanceof判断返回为true,那么强制类型转换就 是安全的,不会报错

2. 格式

1. 变量或对象名 instanceof 数据类型 如果属于就返回true, 否则返回false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值