Java学习笔记之:Java继承

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java学习笔记之:Java继承
⼀、引⾔
继承是java⾯向对象编程技术的⼀块基⽯,因为它允许创建分等级层次的类。

继承可以理解为⼀个对象从另⼀个对象获取属性的过程。

如果类A是类B的⽗类,⽽类B是类C的⽗类,我们也称C是A的⼦类,类C是从类A继承⽽来的。

在Java中,类的继承是单⼀继承,也就是说,⼀个⼦类只能拥有⼀个⽗类
继承中最常使⽤的两个关键字是extends和implements。

这两个关键字的使⽤决定了⼀个对象和另⼀个对象是否是IS-A(是⼀个)关系。

通过使⽤这两个关键字,我们能实现⼀个对象获取另⼀个对象的属性。

所有Java的类均是由ng.Object类继承⽽来的,所以Object是所有类的祖先类,⽽除了Object外,所有类必须有⼀个⽗类。

我们可以通过extends关键字可以申明⼀个类是继承另外⼀个类⽽来的,格式如下:
// ⽗类
class Father {
private String name;
private int age;
public void ball() {
}
}
// ⼦类
class Son extends Father {
}
⼆、实例
1.在⽗类的ball()⽅法中添加如下语句:
System.out.println("我会打球");
2.新建⼀个类,添加main函数,在函数中实例化Son类
public static void main(String[] args) {
Son son=new Son();
}
3.当我们打出“Son.”的时候,智能提⽰会显⽰可以使⽤的⽅法,由于Son类继承了Father类,所以我们可以直接使⽤Father类⾥⾯的⽅法。

最后输出结果:
4.当然你也可以在⼦类中添加⾃⼰的⽅法,如果想要使⽤直接实例化之后调⽤即可
class Son extends Father {
public void Sing() {
System.out.println("我会唱歌");
}
}
public static void main(String[] args) {
Son son=new Son();
son.ball();
son.Sing();
}
三、函数重写
在Java中,⼦类可继承⽗类中的⽅法,⽽不需要重新编写相同的⽅法。

但有时⼦类并不想原封不动地继承⽗类的⽅法,⽽是想作⼀定的修改,这就需要采⽤⽅法的重写。

在继承的关系中,⼦类的⽅法名和⽗类的⽅法名相同,返回值类型相同,参数列表相同,叫做⽅法重写。

1.只需要在⼦类中调⽤⽗类⽅法,编译器会⾃动⽣成重写的函数。

@Override
public void ball() {
// TODO ⾃动⽣成的⽅法存根
// super:
// 1.作⽤就是⽤来⼦类调⽤⽗类的⽅法
// 2.如果实在构造⽅法中使⽤super,那么表⽰调⽤的是⽗类的构造⽅法。

必须在第⼀⾏
// 3.必须在⼦类构造⽅法中才能调⽤⽗类构造⽅法
super.ball();
}
2.然后我们就可以在⾥⾯写⾃⼰想要的代码,在main函数实例化之后执⾏ball⽅法,结果
三、笔记
package com.hgd.study5;
/**
* 继承:⼀个类继另外⼀个类,被继承的类称之为⽗类或者基类,继承的类叫做⼦类或者派⽣类⼦类继承⽗类,将继承⽗类的所有属性
* ⼦类继承⽗类,将继承⽗类的所属性和⽅法包含私有,但是不能访问,其他的都可以直接访问。

⼦类具有拓展的功能
*
* 继承的作⽤:减少代码的冗余,提⾼了代码的重复利⽤
*
* 创建⼦类对象必先创建⽗类对象
*
* ⽅法重写的前提条件
* ⽅法重写:在继承关系中,⼦类的⽅法名和⽗类的⽅法名相同,⽽且需要返回值类型相同,参数列表相同,叫⽅法的重写
*
* @author HuTiger
*
*/
public class Inherit {
public static class Father {
private String nameString;
int age;
public Father() {
// TODO ⾃动⽣成的构造函数存根
System.out.println("Father");
}
public Father(int i) {
// TODO ⾃动⽣成的构造函数存根
System.out.println("Father="+i);
}
public int getAge() {
return age;
}
public String getNameString() {
return nameString;
}
public void setAge(int age) {
this.age = age;
}
public void setNameString(String nameString) {
String = nameString;
}
public void ball() {
System.out.println("我是" + getNameString() + "我会打球");
}
}
public static class Son extends Father {
public Son() {
// TODO ⾃动⽣成的构造函数存根
super();//默认是存在的,⽽且必须是第⼀⾏,因为是调⽤⽗类的构造⽅法,⽗类必须先创建 System.out.println("Son");
}
public Son(String name) {
// TODO ⾃动⽣成的构造函数存根
this();
System.out.println("Son="+name);
}
public Son(int i) {
// TODO ⾃动⽣成的构造函数存根
this();//表⽰调⽤了第⼀个构造⽅法
System.out.println("Son="+i);
}
/*
* ⼦类扩展的技能
*/
private void sing() {
System.out.println("我是" + getNameString() + "我会唱歌");
}
}
}。

相关文档
最新文档