java基础语法(五)——面向对象6:继承

基本概念

​ 在现实生活中,继承表示的意思是下一代人继承下一代人的财产,换一种理解方法就是上一代人的财产进行再“使用”。而java中继承也有这一特点

请添加图片描述

​ 如上图,继承就是,当我们发现对象2拥有和对象1相同的变量和方法时,如果我们再去定义一遍就会十分麻烦。这时候我们可以只定义一个对象3,将对象3包含上述这些变量和方法,这样对象3就成为了一个父类,而对象1和2就是子类,相当于从父类那里“继承”了变量和方法,这里的变量和方法就相当于财产。

​ 使用继承的优点也很明显,这样可以大量减少重复性代码,即提高了代码的复用性

定义格式

public class A extends B {}

A为子类,B为父类。

当类与类之间存在共性(相同)内容,并满足子类是父类中的一种,就可以考虑使用继承。

继承特点

(1)java只支持单继承,不支持多继承,但支持多层继承

理解:一个儿子可以有一个爸爸,不能有多个爸爸,但是儿子也可以爸爸。在java中,爸爸的爸爸不叫爷爷,而是称作间接父类,而爸爸称为直接父类

(2)如果没有写继承于哪个父类,java虚拟机会自动默认为继承于object类

(3)子类能继承父类中的问题:

非私有私有(private)
构造方法不能不能
成员变量
成员方法不能

访问特点

成员变量的访问特点
public class guanjianzi {
    public static void main(String[] args) {
        Zilei m = new Zilei();
        m.test();
    }
}

class Fulei{
    String name = "Fulei";
}

class Zilei extends Fulei{
    String name = "Zilei";
    public void test(){
        String name = "What";
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }
}

输出结果:

What
Zilei
Fulei
  • name输出的是离得最近的变量
  • this.name输出的是成员变量
  • super.name输出的是父类中的变量

总结一下,先在局部位置查找,再在本类成员位置查找,最后在父类成员中查找

super关键字在我的另外一篇博客中有介绍

成员方法的访问特点

就近原则:谁离我近就调用谁

构造方法的访问特点
  • 父类中的构造方法不会被子类继承,但可以通过super()进行调用
  • 子类中所有的构造方法默认先访问父类中的无参构造,再执行自己

调用父类构造方法——子类构造方法会默认调用父类无参构造,即隐含第一行是super();如果想调用有参构造,必须在子类中手动写super进行调用。调用格式:

super(参数1,参数2)//这两个参数都是父类带参构造中的参数

方法的重写

当子类继承父类中的方法时,如果父类的方法不能满足子类现在的需求,那么这时候就需要对这些方法进行改变,即“重写”。在重写的子类方法前,要加一个@Override。例如:

class Fulei{
    public void test(){
        String name = "Fulei";
        System.out.println(name);
    }
}

class Zilei extends Fulei{
@Override
    public void test(){
        String name = "What";
        System.out.println(name);
    }
}

注意事项:

  • 重写方法的名称、形参列表必须与父类中的一致
  • 子类访问权限必须大于等于父类
  • 子类返回值类型必须小于等于父类
  • 子类不能重写父类的静态方法和私有方法

所以重写的方法尽量和父类保持一致

注意重写和重载的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值