第十课:继承


 

/*
    继承可以被定义为一个对象获取另一个对象属性的过程

 */

// 父类 子类
 // 动物
 class Animal{

    // 1.什么情况下有默认值? 2.没有默认值 变量是否可用 3.实体变量与局部变量的区别
    // 默认值问题:【int:0】【boolean :false】【double:0.0】【String:null】
    int legs;
    boolean hair;
    double weight;
    public void walk(){

        System.out.println("YES, i can walk");
    }
}
// 哺乳动物  类Mammal 继承类Animal;Animal是父类 ,Mammal是子类
 class Mammal extends Animal{

    String hairColor;
    public void showColor(){

        System.out.println("i love my hairColor");
    }
}


// Dog 继承Animal,Dog 继承Mammal。Dog与Animal的关系就是继承。
public class Dog extends Mammal{

    String hobby;

    public void showMyHobby(){

        System.out.println("i love show my hobby");
    }

    public static void main(String[] args) {
    

      Mammal m = new Mammal();  
      // 默认为0
      System.out.println(m.hairColor);
      System.out.println(m.legs);
      m.legs = 4;
      // 经过赋值之后,现在m.legs为4
      System.out.println(m.legs);
      System.out.println(m.hair);
      System.out.println(m.weight);

      //父类方法调用
      m.walk();

      /* 【局部变量:没有默认值,没有值则不能使用】可能尚未初始化变量age
      int age;
      System.out.println(age);    
      */

    //-------------------------------------------------------------------
      Animal a = new Animal();
      Dog d = new Dog();
      d.legs = 4;
      d.walk();

      d.hairColor = "white";
      d.showColor();

      d.hobby = "roll";
      d.showMyHobby();
      System.out.printf("dog has %d legs:\n",d.legs);  // 换行 \n
      System.out.println("dog's hairColor is:"+d.hairColor);
      System.out.println("dog loves \""+d.hobby+"\"");

      // 子类的对象 是父类类型
      System.out.println(m instanceof Animal);
      System.out.println(d instanceof Mammal);
      System.out.println(d instanceof Animal);

      System.out.println(a instanceof Mammal);


    /*
    请记住一个非常重要的事实,Java 只支持单继承,这意味着一个类只能继承一个类,所以以下的是非法的:

    public class extends Animal, Mammal{} 禁止
    然而,一个类可以实现一个或多个接口,这使得 Java 可以摆脱不能多继承的问题。

     */
   }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容