java学习2023.11.6

内存分配:

局部变量:基本数据类型

全局变量:

继承

父类

1.子类继承父类 关键字 extends

java中是单继承关系:一个只类能有一个直接父类,但是可以多重继承。

子类继承父类时,能够继承属性和方法但不能继承构造方法,不能直接访问父类的私有属性和私有方法

在使用过程中,虽然子类中虽然没有定义,但也可以使用父类的方法方法

关键字:

this(代表当前对象)

代指当前对象,即谁调用方法,this就是谁

this可以用于区分示例变量和举报变量

public void msg() {    
int type;    
System.out.println(this.type);
}

1.this调用本类的其他构造方法。语法:(参数列表);通过this调用本类构造方法时,代码必需写在第一行。

2.this调用本类中的其他方法。(this可省略)

super(用于访问父类对象)

1.父类的构造方法不能被继承,但是通过super可以调用父类的方法

主要作用:给继承过来的属性赋初始值

语法:super(参数列表);

super();

调用父类的无参构造,只能出现子啊子类构造方第一行

2.通过super方法父类中的其他方法(非私有)。语法super.方法名(参数列表);

3.通过super访问父类中的属性(非私有)。语法:super.属性名;

public Phone() {        
    super();    
}    
public Phone(String brand) {        
    super();  必须第一行
    //      this();  必须第一行       
        this.brand = brand;    
}    public void m1(){        
    super.sell();//调用父类方法        
    super.m1;//调用父类属性        
    this.sell();//调用自身方法        
    sell();//调用自身方法
}

方法重写@override:

当父类方法不能满足子类需求时,子类可以重写(覆盖)父类方法

重写要求:

1 .前提条件 子类 重写 父类方法(发生再父子类之间)

2.子类重写父类方法

3.要求方法名称,参数列表必须相同

4.返回值 要求子类的返回值类型小于等于父类的反回值类型

5.方法修饰符 子类的方法修饰符权限范围要大于父类

方法重载和方法重写的区别和联系?

overload和override

overload:方法重载

1.前提条件 同一个类中

2.方法名称相同 参数列表相同

3.对返回值没有要求

Object类是所有类的祖宗类

自定义的类,没有直接父类,会继承Object类

Person extends Object{}

继承总结

在java中使用extends关键字实现继承。被继承的类叫做父类,或超类,或基类。

java中继承的特点

  1. 一个类只能有一个父类。----不允许多继承

  2. 子类会继承父类全部的属性和方法(私有的也能继承,只是不能直接访问),无法继承构造方法。

    3.如果要访问父类中的属性、方法、构造方法使用super关键字。

    4.子类可以重写父类的方法。调用时默认调用子类的方法。

    5.可以多层继承。A extends B,B extends C,这样A将拥有B和C中的内容

    6.所有类的根类是Object。如果一个类没有继承任何类,默认继承Object类。

    1. 通常在子类的构造方法中调用父类的构造方法。

      根类:没有父类的类。已经是最顶层的类了

      继承的好处和弊端

      继承的好处:

      1. 提高了代码的复用性(多个类相同的内容可以放到同一个类中)。

      2. 提高了代码的维护性(如果方法的代码需要修改,修改一处即可)。

      继承的弊端:

      1. 继承让类与类之间产生了关联,类的耦合性增强了,当父类发生变化时,子类也不得不跟着变化,削弱了子类的独立性

      什么时候使用继承?

      1.继承体现的关系是:is a(是一个)

      2.如果两个类A和B,如果他们在逻辑上满足A是B的一种,或是B是A的一种,就说明他们是继承关系,这个时候可以使用继承来体现,否则就是滥用继承。

      3.例如:苹果和水果,苹果属于水果,可以让苹果类继承于水果类。再例如:苹果手机和手机,苹果手机是手机的一种,可以让苹果手机类继承于手机类。再例如:猫和狗,不能让猫继承于狗,也不能让狗继承于猫,而是定义一个动物类,他们都继承于动物

多态

多态产生的场景:

1.继承关系下 父子之间

父类 对象名=new 子类();

父类的引用指向子类对象

编译找父类方法,运行执行找子类内容

父类对象强制转换为子类类型

对象名 instanof 类名

2.接口和实现类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值