Java多态与继承

继承

extends
子类是一种特殊的父类
山地自行车是一种自行车

class Bike {}
class MountainBike extends Bike{
//代码

}

继承后,对象的属性是什么关系?
对象属性继承

子类的构造方法中必须调用父类的构造方法
(如果父类的构造方法无参,可以不写,编译器自动补上super())

通过super()调用父类的构造方法
super()必须出现在子类构造方法的第一行

方法

  1. 父类中出现的方法,可以直接在子类中调用
  2. 父类中出现的方法,可以定义同名,但参数不同的方法(重载)
  3. 方法的覆写:方法名必须一样,方法参数类型必须一样,返回值类型必须一样,访问限定符不能比父类的小
  4. 注解: 可以添加自定义注解,也可以使用jdk定义好的注解,比如:@Override (帮程序员在编译期间检查覆写) 和 @SuppressWarning(显式的压制部分警告)
  5. 访问限定符:public / protected / default / private,遵循从大到小,protected只能在包内调用
  6. java中特殊的类:Object,如果没有明确写出继承,则自定继承自Object,它是所有类的基类
  7. 在普通方法中
    a 可能是:局部变量、本类的属性、父类的属性
    this.a 可能是 : 本类的属性、父类的属性
    super.a 可能是 : 父类的属性

多态

  1. Person p = new Person();
    有一个Person类的引用的p,指向Person类型的对象
    引用类型和对象类型不要求一定一样
  2. 向上转型
    Animal的子类有 Dog/Cat
Animal p1 = new Dog();
Animal p2 = new Cat();

是Animal类型的引用,指向Dog类型的对象

  1. 普通方法的执行,跟随对象类型而不是引用类型
  2. 静态方法的执行,跟随引用类型而不是对象类型
  3. 向下转型
    Human h = (Human)p;
    向下转型前要用 instanceof 来判断是否能够转型
    这个语句是判断是引用是否能全部指向
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值