写在前面:最近阿姨迷上了和我学JAVA,也同时迷上了张亮的“继承”,为了和小丽在一起,我一定要留住阿姨,争取让她早日出师,我也早日迎娶小丽,升值加薪,走上人生巅峰!
–凹仔:阿姨,小丽在家吗?
–阿姨:出去和小亮玩了,你回家吧,凹仔。
–凹仔:阿姨,我是真的喜欢小丽,你不要这样啊~
–阿姨:你没戏,小亮继承了他爸的房子;
–凹仔:我真心喜欢小丽,阿姨,我要公平竞争!
–阿姨:公平竞争?小亮继承了他爸的奔驰~
–凹仔:阿姨,这些都是物质,小丽不是这样的人!
–阿姨:孩子,小亮还继承了他爸的公司,而且。。。。
–凹仔:阿姨,你这么说继承,那我就和你摆式摆式真正的JAVA里的继承!
–阿姨:JAVA啊,来凹仔你进屋~
概述继承
通过开篇前引子就可以大概了解到,所谓继承直白理解就是父亲拥有的东西传递给儿子,车子,房子,商铺等等,有这样一个初识,我们再来看JAVA中的继承。
首先,我们还记得每次编写代码都需要创建一个Class(类),如:
public Class Fu(){//创建一个名为Fu(父)的类
}
这里每一个类Class(类)都可以作为父类来被继承,当然这里的继承并不是来者不拒式的收纳,而是像国外的《继承法案》一样是有章可循,系统完备的继承。
这里我们就说一下通常一个父类(Class Fu)会被继承哪些东西,大致来说有以下两种:
1.父类中的属性变量;
2.父类中的方法;
例:
public class Fu{
int num1 = 20;//属性变量1(成员变量)
float num2 = 20.1;//属性变量2
public void method1(){//方法1
System.out.println("这是父类方法1");
}
public void method1(){//方法1
System.out.println("这是父类方法2");
}
}
明白了可以继承父类的哪些方法,那么我们就再探究下为什么会用到继承?
看了引子我们都会羡慕小亮的“继承”,比起普通悲催码农有了这些的小亮简直是少奋斗十年,何不美哉!对,就是生活的轻松了。同样,再JAVA中使用继承也是为了是我们写代码轻松很多。设想,如果有两个类Class A,Class B,他们中都有共同的一些属性和方法,如:
Class A
public class A {
int num1=10;
int num2=20;
int num3=30;
public void EatMethod(){
System.out.println("这是吃饭的方法");
}
public void PlayMethod(){
System.out.println("这是玩的方法");
}
}
Class B
public class B {
int num1=10;
int num2=20;
int num4=40;
public void WashMethod(){
System.out.println("这是洗澡的方法");
}
public void PlayMethod(){
System.out.println("这是玩的方法");
}
}
通过这两个类比较发现,其中有很多相通的属性和方法,那么我们在写代码过程中就需要进行机械性地敲键盘,一是无味,二是效率不高,所以这里我们就可以使用继承的方法来代替重复内容。
总结上面的Class A,Class B,我们可以提取共有的属性来建一个Class Fu,例:
public class Fu {
int num1=10;
int num2=20;
public void PlayMethod(){
System.out.println("这是玩的方法");
}
}
这样,Class A,Class B就先可以继承Class Fu来提取相同的属性及方法。例
Class A
public class A extends Fu{
int num3 = 30;
public void EatMethod(){
System.out.println("这是吃饭的方法");
}
}
Class B
public class B extends FU{
int num4 = 40;
public void WashMethod(){
System.out.println("这是洗澡的方法");
}
}
如此一来,A和B两个类就都继承了Fu类的属性及方法,接着再将两个子类特有的部分添加进去就完成了。
那到底有没有成功呢,我们来测试一下。新建一个测试类Class Test
public class Test{
public static void main(String[] args){
A a = new A();
a.PlayMethod();
}
}
运行结果:
虽然Class A中并没有输入PlayMethod()的方法代码,但因为继承了Class Fu(父类),所以此时作为子类的A同样也拥有了在父类定义的方法PlayMethod。
因此,通过这种提取类中相同部分作为父类,而后其他类在作为子类继承就大大提高了复用性,节省了机械地敲代码工作,顺便也挽留了秀发~
总结
待更新…
睡觉