面向对象编程之继承

本文详细介绍了Java中的继承概念,强调其在代码复用和系统维护中的重要性。讲解了父类与子类的关系,指出子类并非父类的子集,并说明了单继承特性。同时,阐述了super关键字的用途,如调用父类构造器和方法,以及this关键字的使用场景,包括调用当前类的构造器和区分成员变量与局部变量。最后,讨论了final关键字的作用,用于声明不可变变量和防止方法重写及类继承。
摘要由CSDN通过智能技术生成

一.继承的意义

继承就是从已有的类派生出新的类。

继承的好处是,当我们写的好几个类中有共同的特征或者动作的时候,就可以把这些相同的部分放到一个父类当中让其他类共享。如此一来,就可以避免重复冗余的代码,提高系统的复用性,使得整个软件更加易于维护、易于理解。

二.父类和子类

B从A派生,也称作B继承自A。

A称为父类,B称为子类。

java语法:

class Child extends Father{
    //子类内容
}

继承的特点:

1.子类不是父类的子集,子类一般拥有比父类更多的数据域和方法。

2.父类中的private数据域在子类中不可见,不可直接使用。

3.继承关系本质上是“是一个”的关系。B继承自A,则B和A必然存在“B是一个A”的关系。例如:三角形类、长方形类、圆形类都继承自图形类,三角形是一个图形,长方形是一个图形,圆形是一个图形。

4.java只能单继承不能多继承,一个子类只能有一个父类。

三.super关键字

super表示当前类的父类。

适用场合:

1.调用父类的构造方法

2.调用父类的方法(当子类已经重写该类时)

调用父类构造器的具体java实现:

super();
或
super(参数列表);

super语句必须是子类构造方法的第一条语句。不可以在子类中调用父类的构造方法名来调用父类构造方法。父类的构造方法不被子类继承。调用父类的构造方法的唯一途径:使用super关键字。如果子类中没有显示调用,编译器就自动将语句 super();作为子类构造方法的第一条语句。

调用父类的方法的具体java实现:

super.方法名(参数列表);

四.this关键字

this关键字表示当前类。

常用情况:

1.this();调用当前类默认构造方法

2.this(参数列表);调用带参构造方法

3.方法内的局部变量与对象的数据域变量同名,如:

public class Person{
    String name;
    public setName(String name){
        this.name=name;
    }
}

五.final关键字

由final修饰的基本类型或者引用类型,该变量里面存放的值不能改变。final 修饰属性,声明变量时可以不赋值,而且一旦赋值就不能被修改了。对 final 属性可以在三个地方赋值:声明时、初始化块中、构造方法中,总之一定要赋值。

如final int num=100;那么num的值就不能再改变,一直为100。如果final修饰的是引用类型,那么就代表它里面的地址值不能改变(不是地址值指向的数据不能变)。如final Person p=new Person(“林子衿”);那么p就不能被重新赋值(p里面地址值不能变),但是可以对地址指向的值进行修改,如p.setName("林子卿")。

final修饰类中的方法的时候,它可以被继承,但是继承之后不能重写。

final修饰类的时候,该类不能被继承。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值