专栏首页黑泽君的专栏Java继承概述以及Java继承案例和继承的好处

Java继承概述以及Java继承案例和继承的好处

Java继承概述

1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。

2.在Java中通过extends关键字可以实现类与类的继承。

  例如:class 子类名 extends 父类名 {}

3.单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。

4.有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。

-----------------------------------------------------------------------------

首先我来写两个代码: //定义学生类 class Student {   String name;   int age;   public Student() {}   //getXxx()/setXxx()   public void eat() {     System.out.println("吃饭");   } } //定义老师类 class Teacher {   String name;   int age;   public Teacher() {}   //getXxx()/setXxx()   public void eat() {     System.out.println("吃饭");   } }

我们观察上面两个代码:   发现name,age成员变量,以及getXxx()/setXxx(),还有eat()等都是相同的。   如果我们后来继续定义类,举例:工人类,军人类。他们是不是也具备这些内容呢?   那么,我们每一次定义这样的类的时候,都要把这些重复的内容都重新定义一遍。   麻烦不?当然麻烦。所以,我们要考虑改进? 那么如何改进呢?   我这想的:我能不能把这些相同的内容给定义到一个独立的类中。   然后,让这多个类和这个独立的类产生一个关系,有了这个关系后,   这多个类就可以具备这个独立的类的功能。   为了实现这个效果,Java就提供了一个技术:继承。   父亲:     4个儿子 继承怎么表示呢?继承的格式是什么样子的呢? class Fu {} class Zi extends Fu { } 我们就回头修改我们的代码: class Person {   String name;   int age;   public Person() {}   //getXxx()/setXxx()   public void eat() {     System.out.println("吃饭");   } } class Student extends Person {   public Student() {} } class Teacher extends Person {   public Teacher() {} }

-----------------------------------------------------------------------------

Java继承案例和继承的好处

 1 /*
 2     继承概述:
 3         把多个类中相同的内容给提取出来定义到一个类中。
 4         
 5     如何实现继承呢?    
 6         Java提供了关键字:extends
 7         
 8     格式:
 9         class 子类名 extends 父类名 {}
10         
11     好处:
12         A:提高了代码的复用性。
13         B:提高了代码的维护性。
14         C:让类与类之间产生了关系,是多态的前提。
15     
16         类与类之间产生了关系,其实也是继承的一个弊端:
17         类的耦合性增强了。
18         
19         开发的原则:低耦合,高内聚。
20         耦合:类与类之间的关系。
21         内聚:就是自己完成某件事情的能力。
22 */
23 
24 //使用继承前
25 /*
26 class Student {
27     public void eat() {
28         System.out.println("吃饭");
29     }
30     
31     public void sleep() {
32         System.out.println("睡觉");
33     }
34 }
35 
36 class Teacher {
37     public void eat() {
38         System.out.println("吃饭");
39     }
40     
41     public void sleep() {
42         System.out.println("睡觉");
43     }
44 }
45 */
46 
47 //使用继承后
48 class Person {
49     public void eat() {
50         System.out.println("吃饭");
51     }
52     
53     public void sleep() {
54         System.out.println("睡觉");
55     }
56 }
57 
58 class Student extends Person {}
59 
60 class Teacher extends Person {}
61 
62 class ExtendsDemo {
63     public static void main(String[] args) {
64         Student s = new Student();
65         s.eat();
66         s.sleep();
67         System.out.println("-------------");
68         
69         Teacher t = new Teacher();
70         t.eat();
71         t.sleep();
72     }
73 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 孔子装爹案例_帮助理解多态的成员访问特点及转型

    class 孔子爹 {   public int age = 40;   public void teach() {     System....

    黑泽君
  • 类、抽象类、接口的综合小练习---运动员和教练案例

    黑泽君
  • 大数据技术之_31_Java 面试题_02_== 和 equals 有什么区别 + String 相关 + 多态 + 传值 + static 加载机制 + 线程

    程序员级别:码龙 > 码神 > 码农 > 码畜 学生级别:学神 > 学霸 > 学渣 > 学弱

    黑泽君
  • Spring - 泛型依赖注入(9)

    桑鱼
  • Java 反射

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对...

    赵哥窟
  • JavaSE(三)之static、final、abstract修饰符

    一、static修饰符 1.1、static变量         在类中,使用static修饰的成员变量,就是静态变量,反之为非静态变量。         ...

    用户1195962
  • 08 - JavaSE之IO流

    JAVA流式输入输出原理:可以想象成一根管道怼到文件上,另一端是我们程序,然后流的输入输出都是按照程序本身作为第一人称说明的。比如 input,对于我们程序来说...

    Daotin
  • Java IO学习笔记+代码(3)

    字符流处理 /*  * ProcesserCharacterStream.java  *  * Created on 2006年8月23日, 上午8:02  *...

    py3study
  • Java I/O流输入输出,序列化,NIO,NIO.2

    二十三年蝉
  • Java 工厂 Simple Factory&Factory&Abstract Factory

    使用简单工厂的目的是创建一个对象时,不向客户暴漏内部的细节,并提供创建对象的通用接口。

    黑白格

扫码关注云+社区

领取腾讯云代金券