java学习笔记

(35) 方法重载(OverLoad)

方法的重载是指一个类可以定义有相同的名字,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。

(35-1)两同三不同:

  • 两 同:同一个类,同一个方法名。
  • 三不同:参数类型不同,参数个数不同,参数顺序不同。

(35-2)只有返回值不同不构成方法的重载。

(35-3)只有形参的名称不同,不构成方法的重载。

(35-4)不仅普通方法可以重载,构造方法也可以重载。

(37) this关键字

  1. 普通方法中,this总是指向调用该方法的对象。
  2. 构造方法中,this总是指向正要初始化的对象。
  3. this不能用于static方法。

this是隐形参数,每个方法都会传递这个参数,this可以理解为对象的地址。


这里写代码片

(38)面向对象的三大特征

  • 继承
  • 封装/隐藏
  • 多态
    • 为了适应需求的多重变化,使代码变得更加通用

继承


例:

这里写图片描述

继承自哺乳动物哺乳动物继承自动物


类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。可以提高代码的复用性,extends的意思是“扩展”,子类是对父类的扩展。

子类继承父类,可以得到父类的全部属性和方法(出了父类的构造方法)。java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护,就像我们现实中,如果你有多个父母亲,那是多么一个混乱的世界。多继承,就是为了实现代码的复用型,却引入了复杂性,使得系统类之间的关系混乱。

java中的多继承,可以通过接口来实现。
如果定义一个类是,没有调用extends,则它的父类是java.lang.Object(比如上图中的动物的父类)

不同的叫法:超类、父类、基类、子类、派生类

多继承:一个类可以有多个直接父类。
(直接父类,间接父类)

(39)方法的重写(OverRide)

  • 重写指的是在子类中根据需要对从基类中继承来的方法进行重写。
  • 重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型。
  • 重写方法不能使用比被重写方法更严格的访问权限。

例:


package TestOverRide;


public class Animal {
    public void Run() {
        System.out.println("奔跑吧,Animal!");
    }

    public void Eat() {
        System.out.println("我在吃饭!");
    }
}

class Bird extends Animal {
    //对Run()方法的重写
    public void Run() {
        System.out.println("飞呀飞!");
    }
}


package TestOverRide;

public class Test {
    public static void main(String[] args) {
        Bird bd = new Bird();
        bd.Run();
        bd.Eat();
    }   
}

运行结果:


飞呀飞!
我在吃饭!

上述例子中,Bird类中的Run()方法就是对父类Animal类中的Run()方法的重写,如果没有在Bird类中对Run()方法进行重写,运行结果应为奔跑吧,Animal!我在吃饭!

(40)Object类

所有类都是Object类的子类,即Object类是所有java类的根基类。如果在类的声明中未适用extends关键字指明其基类,则默认基类为Object类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青子实

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

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

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

打赏作者

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

抵扣说明:

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

余额充值