java继承&方法覆盖

继承

package com.company.extend;
/*
* 关于java语言当中的继承:
*   1、继承是面向对象三大特征之一,三大特征分别是:封装、继承、多态。
*
*   2、继承“基本”的作用是:代码复用。但是继承最重要的作用是:有了继承才有了以后"方法的覆盖"和"多态机制"。
*
*   3、继承语法格式:
*       【修饰符列表】 class 类名 extends 父类名{
*               类体 = 属性 + 方法
*       }
*
*   4、java语言当中的继承只支持单继承,一个类不能同时继承很多类,只能继承一个类。在C++中支持多继承。
*
*   5、关于继承中的一些术语:
*       B类继承A类,其中:
*           A类称为:父类、基类、超类、superclass
*           B类称为:子类、派生类、subclass
*
*   6、在java语言当中子类继承父类都继承哪些数据呢?
*       - 私有的不支持继承
*       - 构造方法不支持继承
*       - 其他数据都可以被继承
*
*   7、虽然java语言当中只支持单继承,但是一个类也可以间接继承其他类,例如:
*       C extends B{
*       }
*       B extends A{
*       }
*       A extends T{
*       }
*       C直接继承B类,间接继承A、T类
*
*   8、java语言中假设一个类没有显示的继承任何类,该类默认继承 JavaSE 库中提供的java.lang.Object类。
*       java语言中任何一个类都有Object类的特征。
*  */
public class ExtendsTest {
    public static void main(String[] args) {
        CreditAccount act = new CreditAccount();
        act.setActno("act-001");
        act.setBalance(5000);
        act.setCredit(0.98);

        System.out.println(act.getActno() + "," + act.getBalance() + "," + act.getCredit());

    }
}

package com.company.extend;

public class Account {
    private String actno;
    private double balance;

    public Account(){

    }
    public Account(String actno, double balance){
        this.actno = actno;
        this.balance = balance;
    }

    public void setActno(String actno){
        this.actno = actno;
    }
    public void setBalance(double balance){
        this.balance = balance;
    }

    public String getActno(){
        return this.actno;
    }
    public double getBalance(){
        return this.balance;
    }
}

package com.company.extend;

public class CreditAccount extends Account{
    private double credit;

    public CreditAccount() {
    }

    public double getCredit() {
        return credit;
    }

    public void setCredit(double credit) {
        this.credit = credit;
    }
}

方法覆盖

package com.company.override;

/*
* 回顾java语言中方法的重载:
*   1、方法的重载又称为Overload
*   2、方法重载什么时候使用?
*       当在同一个类当中,方法完成的功能是相似的,建议方法名相同,这样方便程序员的编程,
*       就像在调用一个方法似的。代码美观。
*   3、什么条件满足之后构成方法重载?
*       * 在同一个类中
*       * 方法名相同
*       * 参数列表不同:类型、顺序、个数
*   4、方法重载和什么无关?
*       * 和方法的返回值无关
*       * 和方法的修饰符列表无关
*
* 关于java方法语言当中方法的覆盖:
*   1、方法覆盖有被称为方法重写,Override【官方】/ Overwrite
*
*   2、什么时候使用方法重写?
*       当父类中的方法已经无法满足当前子类的业务需求,
*       子类有必要将父类中继承过来的方法进行重新编写,
*       这个重新编写的过程称为方法重写/方法覆盖。
*
*   3、什么条件满足之后方法会发生重写呢?【代码满足什么条件之后,就构成方法的覆盖呢?】
*       * 方法覆盖发生在具有继承关系的父子关系之间
*       * 返回值类型相同,方法名相同,形参列表相同
*       * 访问权限不能更低,只能相等或更高(public访问权限最高 > protected > private)
*       * 跑出异常不能更多,只能更少。
*
*   4、建议方法重写的时候尽量赋值粘贴,避免编写出错。
*
*   5、注意:
*       私有方法不能继承,所以不能覆盖
*       构造方法不能继承,所以不能覆盖
*       静态方法不存在覆盖
*       覆盖只针对方法,不谈属性。
* */
public class OverrideTest01 {
    public static void main(String[] args) {
        // 创建动物对象
        Animal a1 = new Animal();
        a1.move();

        // 创建猫类
        Cat c1 = new Cat();
        c1.move();

        // 创建鸟类
        Bird b1 = new Bird();
        b1.move();
    }

}
package com.company.override;
// 动物类
public class Animal {
    public void move(){
        System.out.println("动物在移动!");
    }
}

package com.company.override;

public class Bird extends Animal{
    public void move(){
        System.out.println("鸟在飞!");
    }
}

package com.company.override;

// 猫类
public class Cat extends Animal{
    public void move(){
        System.out.println("猫在跑!");
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值