java关于继承的代码_JAVA有关继承学习笔记

继承(extends)

子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

格式:

1 //父类

2 public class父类名 {3

4 }5

6 //子类

7 public class 子类名 extends父类名 {8

9 }

父类更抽象,子类更具体。例如:兔子和羊属于食草动物类,狮子和豹属于食肉动物类,而食草动物和食肉动物又都是属于动物类。

继承的特性

子类拥有父类非 private 的所有属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。

四种权限修饰符的访问权限范围:

如果将权限范围归纳于:类内

那么:

private私有的 边界限于类内

default默认的 边界限于同包

protected受保护的 边界限于不同包子类

public公有的  边界不限于上述范围

800834465784b1778b676f32f416b324.png

继承关键字

extends 和 implements 这两个关键字都可以用来实现继承。

所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)类。

super 与 this 关键字

super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。

this关键字:指向自己的引用。

1 classStudent{2 voidstudy() {3 System.out.println("student: study");4 }5 }6

7 class UNStudent extendsAnimal {8 voidstudy () {9 System.out.println("unstudent : study"); //重写了父类的study方法10 }11 voidstudyTest() {12 this.study(); //this 调用自己的方法

13 super.study(); //super 调用父类方法

14 }15 }16

17 public classTest {18 public static voidmain(String[] args) {19 Student a = newStudent();20 a.study();21 UNStudent d = newUNStudent();22 d.studyTest();23 }24 }

输出:

student: study

unstudent: study

student: study

重写

子类可以重写父类的方法

父类的方法满足不了子类的需求

格式:除方法体之外写的一样

子类对象优先调用重写之后的方法

自动转型

子类对象可以自动转型为父类类型

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

自动转型之后还是优先调用重写之后的方法

转型之后不能调用子类特有的属性和方法

继承的优缺点

优点:

代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;

提高代码的重用性;

子类可以形似父类,但又异于父类;

提高代码的可扩展性;

提高产品或项目的开放性。

缺点:

继承是侵入性的。只要继承,就必须拥有父类的所有属性和方法;

降低代码的灵活性。子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束;

增强了耦合性。当父类的常量、变量和方法被修改时,需要考虑子类的修改,而且在 缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大段的代码需要重构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值