java中有关继承的知识_Java中继承相关知识点

继承

1.继承概述

继承是面向对象的三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法

1.1 继承的格式

格式:public class 子类名 extends 父类名{}

范例:public class Zi extends Fu{}

Fu:父类,也叫基类、超类

Zi:子类,也叫派生类

1.2 继承中子类的特点

子类可以有父类的内容

子类还可以有自己特有的内容

2.继承的好处和弊端

好处:

提高了代码的复用性(多个类相同的成员可以放到同一个类中)

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

弊端:

继承让类和类之间产生了关系,类的耦合性增强了,当父类中发生变化时子类实现也不得不跟着发生变化,削弱了子类的独立性。

什么时候使用继承?

假设法:

有两个类A和B,如果他们满足A是B得一种或者B是A的一种,就说明他们存在继承关系,这个时候就可以考虑用继承来实现,否则就不能乱用继承

举例:

水果和苹果,猫和动物,猫和狗

3.继承中变量的访问特点

在子类方法中访问一个变量:

先在子类方法中的范围找

在子类成员范围找

在父类成员范围找

如果都没有就报错,不考虑父类的父类

4.super关键字

super关键字和this关键字的用法相似

this:代表本类对象的引用

super:代表父类对象的引用(父类存储空间的标识)

关键字

访问成员变量

访问构造方法

访问成员方法

this

this.成员变量:访问本类中的成员变量

this(...):访问本类的构造方法

this.成员方法(...):访问本类的成员方法

super

super.成员变量:访问父类的成员变量

super(...):访问父类的构造方法

super.成员方法:访问父类的成员方法

示例:

父类

package com.itheima_04;

public class Father {

public int age = 40;

}

子类

package com.itheima_04;

public class Son extends Father {

public int age = 30;

public void show(){

int age = 10;

//访问方法中的age

System.out.println(age);

//访问子类中的age

System.out.println(this.age);

//访问父类中的age

System.out.println(super.age);

}

}

测试类

package com.itheima_04;

public class Test {

public static void main(String[] args) {

Son s = new Son();

s.show();

}

}

5.继承中构造方法的访问特点

子类中所有的构造方法都默认会访问父类中无参的构造方法

因为子类要继承父类中的数据,可能还会使用父类中的数据。所以子类初始化之前,一定要先完成对父类的初始化。

每一个子类构造方法的第一条语句默认都是:super()

6.方法重写

方法重写概述

子类中出现了和父类中一模一样的方法声明

方法重写的应用

当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,既沿袭了父类的功能又定义了子类特有的内容

@Override

是一个注解

可以帮助我们检查重写方法的方法声明的正确性

示例:

Phone

package itheima_05;

//手机类

public class Phone {

public void call(String name){

System.out.println("给" + name + "打电话!");

}

}

NewPhone

package itheima_05;

//新式手机

public class NewPhone extends Phone{

@Override //注解,可以帮助检查方法声明的正确性

public void call(String name){

System.out.println("开启视频功能");

super.call(name);

}

}

PhoneDemo

package itheima_05;

//测试类

public class PhoneDemo {

public static void main(String[] args) {

//创建对象

Phone phone = new Phone();

phone.call("蓝头发妹妹");

System.out.println("============");

NewPhone newPhone = new NewPhone();

newPhone.call("蓝头发妹妹");

}

}

7.重写的注意事项

私有方法不能被重写(父类私有成员子类是不能继承的)

子类方法访问权限不能比父类方法中的访问权限低

8.继承的注意事项

Java中的类只支持单继承,不支持多继承

Java中类是支持多层继承的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值