java必知必会-java继承与重写、重载

系列文章目录

java必知必会-java环境搭建
java必知必会-java开发工具安装与使用
java必知必会-java关键字、变量和常量
java必知必会-java数据类型和变量定义
java必知必会-java类和对象
java必知必会-java面向对象的三大特性-



前言

上一篇了解完面向对象特性后,本文将详细说说继承的特性


一、什么是继承?

继承是在原有类的基础上新建新的类,原有类称为父类,新的类称为子类。使用java关键字extends表示继承某个类。

范式

public class XXX extends YYY{}

示例代码如下

```java
public class Main {
    public static void main(String[] args) {
        Son son = new Son();
        son.fun();
    }
}
class Father{//父类
    public void fun(){
        System.out.println("父类的方法");
    }
}
class Son extends Father{//子类继承父类
}

二、继承有什么特性?

  • 子类可以访问父类所有非private修饰的属性和方法
  • 父子类中有重复方法则调用子类的方法
  • 父子类中有重复属性则调用子类的属性
public class Main {
    public static void main(String[] args) {
        Son son = new Son();
        son.fun();//调用的是子类的方法
        System.out.println(son.getName());
    }
}
class Father{
    protected String name = "父类属性";
    public void fun(){
        System.out.println("父类的方法");
    }
}
class Son extends Father{//子类继承父类
    protected String name = "子类属性";
    public void fun(){
        System.out.println("子类的方法");
    }
    public String getName(){
        return this.name;
    }
}

结果
在这里插入图片描述

三、什么是重载?

重载(overload)就是同一个类中多个名称相同、参数类型或个数或顺序不同的方法,例如

public class Main {
    public void fun(){}//1
    public void fun(String name){}//2
    public void fun(Integer id,String name){}//3
    public void fun(String name,Integer id){}//4
}

1,2,3,4互为重载方法,1与2,3,4参数个数不同,3与4参数顺序不同
注意:返回值和参数名称不同不是重载

四、什么是重写?

重写(override)就是父子类中方法名、参数列表、返回值相同的方法,例如下面的fun方法
重写 的返回值和异常应该小于等于父类的 返回值和异常
重写的访问修饰符要大于等于父类
static方法,final方法,private方法,构造器Constructor不能被继承,因此不能重写

public class Main {
    public static void main(String[] args) {
        Son son = new Son();
        son.fun();//调用的是子类的方法
        System.out.println(son.getName());
    }
}
class Father{
    protected String name = "父类属性";
    public void fun(){
        System.out.println("父类的方法");
    }
}
class Son extends Father{//子类继承父类
    protected String name = "子类属性";
    public void fun(){
        System.out.println("子类的方法");
    }
    public String getName(){
        return this.name;
    }
}

总结

本文介绍了java继承与重写、重载,如果有任何疑问欢迎私信或者评论

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程岁月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值