(18)面向对象-2.类的继承

一、继承的特点
1、Java的继承通过关键字extends来实现
2、Java继承具有单继承的特点,每一个子类只有一个直接父类
3、Java里子类继承父类的语法格式如下:

//SubClass子类 SuperClass父类
修饰符 class SubClass extends SuperClass{
//类定义的部分
}

3、Java的子类不能获得父类的构造器
4、如果定义一个Java类时,并未显示指定这个类的直接父类,则这个类默认扩展java.lang.Object类。因此,java.lang.Object类是所有类的父类,要么是其直接父类,要么是其间接父类。所以,所有的java对象都可以调用java.lang.Object类所定义的实例方法。

二、重写父类的方法

 class Bird {
    public int b=1;
    public void fly(){
        System.out.println("我在天空里自由自在的飞翔");
    }
}

这个类阔扩展了Bird,重写了Bird类的fly()方法
public class Ostrich extends Bird {
    //重写Bird类的fly()方法
    public void fly(){
        super.fly();
        System.out.println("我只能在地方跑");
    }
    public void a(){
         int b=3;
        System.out.println(super.b);
    }
    public static void main(String[] args){
        Ostrich os = new Ostrich();
                os.fly();
                os.a();
        }

#这种子类包含父类的同名方法的现象被称为父类的重写(Override),也被称为方法覆盖
1、遵循:两同两校一大
”两同“:方法名相同、形参列表相同
”两小“:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出异常类型应比父类方法生命抛出异常更小或相等
”一大”子类方法的访问权限应比父类方法的访问权限更大或相等

2、覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能是一个类方法,一个实例方法。
3、如果父类方法具有private访问权限,则该方法对其子类是隐藏的,因此其子类无法访问该方法,也就是无法重写该方法。

三、super限定
1、super用于限定该对象调用它从父类继承得到的示例变量或方法
正如this不能出现在static修饰方法一样中一样,super不能出现在static修饰的方法中
static修饰的方法属于类,该方法的调用者可能是一个类,而不是对象,因而super限定也就失去了意义

四、调用父类构造器
1、在一个构造器中,调用另一个重载构造器使用this调用来完成,在子类狗走起中调用父类构造器用super完成
2、this调用的是同一个类中重载的构造器
3、使用super调用父类构造器也必须出现在子类构造器执行体的第一行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值