分享

java程序员必备的基础知识_java面向对象之继承(一)

 好汉勃士 2021-10-09

在学习继承之前我们来来思考这样一个问题:

我想创建一个学生类,男学生类,女学生类,会有这么几个问题:

1、不管是男同学还是女学生,都是学生,学生公有的方法和属性本来就有很多。

2、虽然都是学生,但是男女毕竟有别,还是有一些不一样的地方。

在以往的认知当中,我们不得不创建学生类,男学生类,女学生类,然后书写每一个重复的属性和方法。

但是java给我们提供了更好的解决方案叫继承。

文章图片1

java程序员必备的基础知识_java面向对象之继承(一)

1、基本介绍

继承可以解决代码复用的问题,一个类可以继承一个类,被继承的类我们称之为【父类】或者【超类】,另一个类称之为【子类】也 叫【派生类】,子类可以通过extends关键字轻松拥有获取父类的 成员变量和成员方法的能力,除了被private修饰的。在java中是单 继承的,这样可以规范代码的实现。

继承其实很好理解的,我们天生就会继承来自父母的很多基因,那爸爸的很多能力或者特征你天生就会拥有。

文章图片2

java程序员必备的基础知识_java面向对象之继承(一)

写一个小代码,我们尝试理解一下:

// 定义一个父亲类,有名字属性和一个吃的方法public class Father {private String name; public void eat(){ System.out.println('I am eating!'); } public String getName() { return name; } public void setName(String name) { this.name = name; } }
// 子类使用extends关键字public class SonONe extends Father {}// 子类使用extends关键字public class SonTwo extends Father {}

现在无论是哪个子类都能调用父类的方法:

public static void main(String[] args) {SonONe sonONe = new SonONe();sonONe.eat();}

当然,儿子作为一个单独的个体,它依然可以拥有属于自己的属性和方法。

public class SonONe extends Father {    public void play(){    System.out.println('I am playing!');    }}

经过这样的设计,我们的代码实现起来可以十分的灵活。

比如:我们现在一个现实中父亲、儿子、孙子之间的关系的类,我们是不是就可以这样设计类了。

public class Father { public String name = 'lily'; public Father() { System.out.println('Father is created!'); } public void eat(){ System.out.println('father is eating!'); }}
public class Son extends Father{    public Son() {    System.out.println('Son is created!');    }    public void work(){    System.out.println('son is working!');    }}
public class GrandSon extends Son{ public GrandSon() { System.out.println('GrandSon is created!'); } public void play(){ System.out.println('grandson is playing!'); }}
public static void main(String[] args) {new GrandSon();}//下面为输出的结果:Father is created!Son is created!GrandSon is created!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多