zoukankan      html  css  js  c++  java
  • JAVA中的继承

    继承是软件开发中实现代码复用的有效手段,如果一个类A继承了类B那么类B中的public、protected及默认修饰符修饰的实例成员或静态成员将被类A继承,也可以说类B的成员就是类A的成员而类A在此基础上还可以扩展新的成员。

    如果两个类(类A和类B)存在相同的成员则可以抽象出它们的父类(将两个类的相同成员放在父类)类C,从而实现代码的复用。

      1 //类c
      2 public abstract Animal{
      3    public static String Color;//静态成员
      4    public String Name;//实例成员
      5    public void Eat(string fool)//实现吃的方法
      6    {
      7       System.Out.Println("我在吃"+fool);
      8     }
      9 }
     10 //类A
     11 public Cat extends Animal{
     12      //类A继承类C
     13 }
     14 //类B
     15 public Dog extends Animal{
     16      //类B继承类C
     17 }
    继承的语法

    从上面的例子中类A和类B都继承了类C所以这两个类中都有Color和Name以及吃的方法。但是狗会咬人所以我们可以再类B中定义一个咬人的方法

      1 public Dog extends Animal{
      2      //类A继承类C
      3      public void EatPerson(){
      4                    System.Out.Println("我会咬人")
      5            }
      6 }
    在继承的基础上扩展新的成员

    如果有一个动物它不吃别的东西它只吃鱼那我们可以覆盖父类的Eat()方法

      1 public Cate extends Animal{
      2  public void Eat(String fool)
      3 {
      4      if(fool.Equals("")){
      5    System.Out.Println("我在吃鱼");
      6    }else{
      7    System.Out.Println("我只吃鱼!赶快拿走");
      8 
      9    }
     10 }
     11 }
    子类覆盖父类的成员

    使用继承的注意点:

    继承时继承的级层最好不要超过三层因为继承的层级如果超过三层则会使程序变的复杂,不易于维护

    在使用继承是不要滥用。不可以属性值来扩展子类。

    继承的缺点:打破封装,是父类的内部实现完全暴露给子类。

  • 相关阅读:
    javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplicati
    了解燃尽图
    hibernate错误org.hibernate.AnnotationException: No identifier specified for entity:
    JGit的常用功能(提交、回滚,日志查询)
    CoverageBuilder
    IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again
    jacoco-实战篇-增量覆盖率
    代码覆盖率-JaCoCo
    Hard voting and Soft Voting
    AP聚类
  • 原文地址:https://www.cnblogs.com/wangzheand/p/wz123.html
Copyright © 2011-2022 走看看