继承

一、继承的意义
比如我们要创建手机和电脑两个类,
手机具有的属性包括:品牌、型号、电量、卡槽个数,
具有的方法有:上网查资料、玩游戏、打电话。
而电脑具有的属性包括:品牌、型号、电量、显卡型号,
方法包括:上网查资料、玩游戏、编程序。
这里我们会发现,手机和电脑具有很多共同的属性和方法,如果分别创建两个类,那么需要把共同的部分写两遍,在创建以及后期维护时都会很麻烦,因此我们可以先创建一个电子产品类,包括手机以及电脑所有共同的属性和方法,然后让手机类和电脑类分别继承电子产品类,再补充它们各自的属性和方法。

二、继承
继承能够让一个(子)类拥有另一个(父)类的属性和方法。
格式: public class B extends A{ }
也就是B继承A的属性和方法。

三、继承的特点
1.继承的种类:
java中有单继承:A←B,(B继承A);
也有多重继承:A←B←C;
不同的类继承了同一个类:A←B,A←C;
但是一个类不能用extends关键字来同时继承多个类。
2.Object:是所有类的父类,在创建类时,如果没有继承关键词那么就默认继承了Object类。
3.子类能拥有父类的所有属性和方法,但是限于访问权限,部分属性和方法不能直接使用。子类可以拥有自己的属性和方法。
4.子类可以用自己的方式实现父类的方法,即方法重写。当父类的方法不能满足子类的需要时,可以在子类里重写一个同名的方法,覆盖继承的父类方法。
注意(1)父类方法的访问权限,在子类可见;
(2)访问权限可以扩大,方法返回值类型、方法名、参数必须完全一样。
5.子类对象可以自动变为父类对象,即自动转型,自动转型后,执行方法时以子类的方法为准。

关于extends 和 implements
继承可以使用 extends 和 implements 这两个关键字来实现继承。
extends关键字
在 Java 中,类的继承是单一继承,也就是一个子类只能拥有一个父类,所以 extends 只能继承一个类。
implements关键字
使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔),并且要在类中实现继承的接口所有的方法。
public interface A {
public void a();
public void b();
}
public interface B {
public void c();
}
public class C implements A,B {
public void a();
public void b();
public void c();
}

关于super 与 this 关键字
super关键字:通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。

public class Show {
public void show(){
System.out.println(“父类调用成功了!”);
}
public static void main (String[] args) {
Show2 s = new Show2();
s.showTest();
}
}

public class Show2 extends Show{
public void show(){
System.out.println(“子类调用成功了!”);
}
public void showTest() {
this.show();//这里调用子类也就是当前类
super.show();//这里调用父类的show方法
}
}

运行结果:
子类调用成功了!
父类调用成功了!

final关键字
1.声明时:可以把类定义为不能继承的,即最终类。
修饰符(public/private/default/protected) final class 类名 { }

2.用于用于修饰方法,该方法不能被子类重写
修饰符(public/private/default/protected) final 返回值类型 方法名(){ }

3.定义实例变量:被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final。

关于访问权限
控制被修饰的内容,能在哪些范围使用。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值