什么是继承 

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

    多个类可以称为子类,单独这个类称为父类、超类或者基类。

    子类可以直接访问父类中的非私有的属性和行为。

    通过 extends 关键字让类与类之间产生继承关系。


继承的优点

    提高了代码的复用性

    提高了代码的维护性

    让类与类之间产生了关系,是多态的前提


继承的缺点

    增强了类之间的耦合。

    软件开发的一个原则是高内聚,低耦合。

    内聚是一个模块内各个元素彼此结合的紧密程度

    耦合是一个软件里面不同的模板之间相互连接的数量

    破坏了类的封装性,其实继承一般多用于抽象方法的继承和接口的实现


如何使用extends来实现继承的关系

语法

   [修饰符列表] class 子类名 extends 父类名{

    类体;

}


首先 我们自己来第一 一个父类Demo

  public class Demo{

  public void d1{

  System.out.println("Demo里面的d1方法");

}

  private void d2{

  System.out.println("Demo里面的d2方法");

}

}


定义一个子类Demo1来Demo

public class Demo1 extends Demo{

  public void d3(){

  System.out.println("Demo1里面的d3方法");

}

}


写一个测试类来测试一下

public class Test01{

  public static void main(String[] args){

  Demo1 f = new Demo1();

  //因为Demo1继承了Demo,所以可以在子类里面调用父类的方法

   f.d1();

   //f.d2();//子类不能访问父类中private修饰的方法

   //Demo1中自己的方法

   f.d3();

}

}


将上面的代码修改一下,创建一个Demo的父类Demo2

public class Demo2{

  public void d4(){

  System.out.println("Demo2里面的d4方法");

}

}


让Demo继承Demo2

public class Demo extends Demo2{

  public void d1(){

  System.out.println("Demo里面的d1方法");

}

  public void d2(){

  System.out.println("Demo里面的d2方法");

}

}


写一个测试类来测试一下

public class Test02{

public static void main(String[] args){

  Demo1 D = new Demo1();

  D.m0();//可以调用

}

}


Java不支持多继承,但是支持多层继承,即子类—>父类—>爷爷类….—>祖先类—>Object类,子类可以访问其先辈类里面的非private修饰的成员方法和成员变量。

JAVA 面向对象 三大特征:继承的更多相关文章

  1. OOP面向对象 三大特征 继承封装多态

    OOP面向对象 ----三大特征 继承封装多态 面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构 ...

  2. 封装继承多态-java面向对象三大特征

    第七章  封装和继承 一.面向对象的三大特征 封装.继承.多态 二.封装 将类的属性(字段)设置为私有的(private),并添加getter/setter方法操作属性. 注意:get|set方法的固 ...

  3. 简述Java面向对象三大特征:封装、继承、多态

    封装: 把对象的全部属性和服务结合在一起,形成不可分割的独立单位: 尽可能隐藏内部细节.(数据隐藏.隐藏具体实现的细节)     public.private.protected.default pu ...

  4. Java面向对象三大特征

    封装: 首先,属性可用来描述同一类事物的特征, 行为可描述一类事物可做的操作,封装就是要把属于同一类事物的共性(包括属性与行为)归到一个类中,以方便使用.比如人这个东东,可用下面的方式封装:人{ 年龄 ...

  5. Java 面向对象三大特征之一: 多态

    多态与类型转换 子类重写父类方法 1)位置:子类和父类中有同名的方法 2)方法名相同,返回类型和修饰符相同,参数列表相同       方法体不同 多态的优势和应用场合 多态:同一个引用类型,使用不同的 ...

  6. Java_面向对象三大特征

    面向对象特征 面向对象三大特征: 继承, 封装, 多态 继承 继承: 子类可以从父类继承属性和方法 对外公开某些属性和方法 要点(eclipse中Ctrl+T查看继承结构) 1.父类也称超类, 基类, ...

  7. Java学习:面向对象三大特征:封装、继承、多态之封装性

    面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ...

  8. JAVA的三大特征 封装继承多态- 简单总结

    简单总结一下 封装-即从很多类的抽取相同的代码 写在一个类里. 好处是 代码的重用,安全. 继承-减少代码的书写. 其好处也是 代码的重用. 多态- 把不同的子类对象都当作父类来看,可以屏蔽不同子类对 ...

  9. Java中面向对象三大特征

    也就是说在这里"人"是多态的, 在不同的形态时,特征行为是不一样的, 这里的"人", 同时有两种形态,一种是教师形态,一种是学生形态,所对应的特征行为分别是&q ...

随机推荐

  1. 基于NACOS和JAVA反射机制动态更新JAVA静态常量非@Value注解

    1.前言 项目中都会使用常量类文件, 这些值如果需要变动需要重新提交代码,或者基于@Value注解实现动态刷新, 如果常量太多也是很麻烦; 那么 能不能有更加简便的实现方式呢? 本文讲述的方式是, 一 ...

  2. 多语言工作者の十日冲刺<1/10>

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺--第一天(04.30) 作业正文 ...

  3. Redis快照原理详解

    本文对Redis快照的实现过程进行介绍,了解Redis快照实现过程对Redis管理很有帮助. Redis默认会将快照文件存储在Redis当前进程的工作目录中的dump.rdb文件中,可以通过配置dir ...

  4. Stream替代for-编码五分钟-划水五小时

    Stream替代for-编码五分钟-划水五小时 天空没有痕迹,风雨已在心中. 背景:使用Stream 流式操作取代俄罗斯式套娃的for循环,解放底层劳动密集型码畜的双手,使编码五分钟划水五小时,不再是 ...

  5. Nginx负载均衡的详细配置 + Keepalived使用

    1,话不多说, 这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢? 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器 ...

  6. 线程基础9-quene讲解

    在学习Java 多线程并发开发过程中,了解到DelayQueue类的主要作用:是一个无界的BlockingQueue,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走. ...

  7. Plugns

    Lombok Translation Rainbow Brackets

  8. openstack迁移计算节点所有云主机

    迁移计算节点所有云主机 -------高德置地 王锦雄   使用host-evacuate-live热迁移主机 查看主机目前的云主机情况 nova hypervisor-servers cloud1 ...

  9. 分享 HT 实用技巧:实现指南针和 3D 魔方导航

    前言 三维场景时常需要一个导航标识,用来确定场景所处的方位. 一般有两种表现形式:指南针.小方盒(方位魔方). 参考一下百度百科中的 maya 界面,可以看到右上角有一个标识方位的小盒子,说的就是它: ...

  10. vue全家桶(2.4)

    3.6.重定向和别名 3.6.1.重定向 路由重定向通俗的说就是从一个路由重新定位跳转到另一个路由,例如:访问的 "/a" 重定向到"/b" 重定向也是通过配置 ...