继承extends

什么是继承?

继承是面向对象三大特征之一。java中的继承描述的是两个类之间的关系,被继承的类称为父类,继承的类称为子类,使用extends关键字来表示。在java语言里面只支持单继承,即一个类只能有一个父类,子类可以继承父类中的非private修饰的成员方法和成员变量,构造方法不能被继承,java里面的继承跟现实生活中的继承颇为相似,现实生活中一个儿子只能有一个父亲,儿子可以继承父亲的房子车子但是不能继承父亲大脑里面的思想和知识。如果一个类没有显示的继承其他类,那么这个类会默认继承Object类,Object是SUN公司提供的java中的根类

继承的优点

    提高了代码的复用性

    提高了代码的维护性

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

继承的缺点

            增强了类之间的耦合。

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

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

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

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

语法

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

     类体;

}

首先,来自己定义一个父类SuperClass

publicclassSuperClass{publicvoidm1(){ 

       System.out.println("SuperClass中的m1方法");   

 }

privatevoidm2(){        

System.out.println("SuperClass类中的m2方法");   

 }

}

然后定义一个子类SubClass来继承SuperClass

public classSubClassextendsSuperClass{

    publicvoidm3(){

        System.out.println("SubClass中的m3方法");

    }

}

写一个测试类来测试一下

public class Test01{

    publicstaticvoidmain(String[] args){

        SubClass s = new SubClass();

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

        s.m1();

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

        //SubClass中自己的方法        

        s.m3();

    }

}

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

public class SuperSuperClass{

    publicvoidm0(){

        System.out.println("SuperSuperClass中的m0方法");

    }

}


让SuperClass继承SuperSuperClass

public class SuperClass extends SuperSuperClass{

    publicvoidm1(){

        System.out.println("SuperClass中的m1方法");

    }

    publicvoidm2(){

        System.out.println("SuperClass类中的m2方法");

    }

}


写一个测试类来测试一下

public class Test02{

    publicstaticvoidmain(String[] args){

        SubClass s = new SubClass();

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

 }

}

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,221评论 1 114
  • Java OOP 什么是面向对象思想? 把一组数据和处理他们的方法组成对象(object),把相同行为的对象归纳为...
    chonglingliu阅读 4,216评论 0 1
  • 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子...
    java大熊阅读 1,252评论 0 0
  • 继承是代码复用的一种方式,是类与类之间的一种关系 从类与类之间的设计关系来看,子类必须属于父类的一种时,才会继承 ...
    灼灼其华_b157阅读 1,175评论 0 0
  • Cindy是个80后,准确的说是80年出生的,要是放在十年前,也是个风华正茂,和男朋友手牵手,喝着可乐牵着狗的主,...
    赵小透阅读 2,563评论 -1 1

友情链接更多精彩内容