目录

继承

多态

抽象

接口


继承

//需求:采用继承的思想实现猫和狗的案例

1.猫:
成员变量:姓名,年龄
构造方法:无参,带参
成员方法:get/set方法,抓老鼠

2.狗:
成员变量:姓名,年龄
构造方法:无参,带参
成员方法:get/set方法,看门

3.共性:
成员变量:姓名,年龄
构造方法:无参,带参
成员方法:get/set方法

具体代码:

猫类:

package Animal;public class Cat extends Common{  //猫类public Cat() {}public Cat(String name, int age) {super(name, age);}public void catchMouse(){System.out.println("今天抓了十个杰克!");}
}

狗类:

package Animal;public class Dog extends Common {public Dog() {}public Dog(String name, int age) {super(name, age);}public void lookDoor(){System.out.println("今天要想一百遍妮妮!!");}
}

共性类:

package Animal;public class Common {private String name;   //成员变量private int age;public Common() {     //构造方法}public Common(String name, int age) {   //成员方法this.name = name;this.age = age;System.out.println("姓名:"+name+"   年龄:"+age);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

测试类:

package Animal;public class Demo {public static void main(String[] args) {Dog d = new Dog("小虎", 5);d.lookDoor();Cat c = new Cat();c.setName("Tom");c.setAge(2);System.out.println(c.getName()+" "+c.getAge());c.catchMouse();}
}

运行结果:

多态

//说明:多态需以继承为前提条件,需要有重写操作,然后需要父类引用指向子类对象;

共性类:

package Animal;public class Common {private String name;   //成员变量private int age;public void eat() {System.out.println("动物都会吃饭!!!");}public Common() {     //构造方法}public Common(String name, int age) {   //成员方法this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

猫类:

package Animal;public class Cat extends Common{public Cat() {}public Cat(String name, int age) {super(name, age);}public void catchMouse(){System.out.println("今天抓了十个杰克!");}@Overridepublic void eat(){  //重写System.out.println("猫吃jarry");}
}

狗类:

package Animal;public class Dog extends Common {public Dog() {}public Dog(String name, int age) {super(name, age);}public void lookDoor(){System.out.println("今天要想一百遍妮妮!!");}@Overridepublic void eat(){  //重写System.out.println("狗吃tom");}
}

测试类:

package Animal;public class Demo {public static void main(String[] args) {//创建猫狗类并进行测试Common c1 = new Cat();c1.setName("Tom");c1.setAge(2);System.out.println(c1.getName()+","+c1.getAge());c1.eat();Cat c = (Cat) c1;   //完成猫的特有方法c.catchMouse();Common c2 = new Dog("黑嘴",3);System.out.println(c2.getName()+","+c2.getAge());c2.eat();Dog d = (Dog) c2;  //完成狗的特有方法d.lookDoor();}
}

测试结果:

抽象

//说明:用抽象类定义一个父类,他的子类要么也是抽象类,要么必须重写父类中的抽象方法;

共性类:

package ChouXiang;public abstract class Animal {  //抽象类private int age;private String name;public abstract void eat();  //抽象方法public void sleep(){     //非抽象方法System.out.println("睡觉");}public Animal() {}public Animal(int age, String name) {this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

猫类:

package ChouXiang;public class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

狗类:

package ChouXiang;public  class Dog extends Animal{public Dog(int age, String name) {super(age,name);}@Overridepublic void eat() {System.out.println("狗吃shit");}
}

测试类:

package ChouXiang;public class AnimalDemo {public static void main(String[] args) {Animal a = new Cat();a.setName("tommy");a.setAge(1);System.out.println(a.getName()+" "+a.getAge());a.eat();a.sleep();Animal b = new Dog(3,"花花");System.out.println(b.getName()+" "+b.getAge());b.eat();b.sleep();}
}

测试结果:

接口

//需求:对猫和狗进行训练,他们就可以调高了,在这里加入跳高功能。
采用抽象类和接口实现猫狗案例;

注意: 接口中不能定义构造方法也不能定义非抽象方法,接口中只能有抽象方法;

思路:

  1. 定义接口: Jumpping
    成员方法:跳高

  2. 定义动物抽象类:Animal
    成员变量:姓名,年龄;
    成员方法:get/set方法,吃饭;
    构造方法:无参,带参;

  3. 定义具体的类:Cat,Dog;
    构造方法:无参、带参;
    成员方法:重写吃饭类,跳高类;

  4. 定义测试类:AnimalDemo

接口:

package JieKouAnimal;public interface Jumpping {public abstract void jump();
}

动物类:

package JieKouAnimal;public abstract class Animal {private String name;private int age;//构造方法public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}//成员方法public abstract void eat();public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

猫类:

package JieKouAnimal;public class Cat extends Animal implements Jumpping {//重写父类方法@Overridepublic void eat() {System.out.println("猫吃鱼啊");}@Overridepublic void jump() {System.out.println("猫上窜下跳!");}//构造方法public Cat() {}public Cat(String name, int age) {super(name, age);}
}

狗类:

package JieKouAnimal;public class Dog extends Animal implements Jumpping{@Overridepublic void eat(){System.out.println("狗吃翔");}@Overridepublic void jump(){System.out.println("狗左跳右跳!");}public Dog() {}public Dog(String name, int age) {super(name, age);}
}

测试类:

package JieKouAnimal;public class AnimalDemo {public static void main(String[] args) {//创建对象Animal mimi = new Cat("小咪",1);System.out.println(mimi.getName()+" "+mimi.getAge());mimi.eat();Jumpping j = new Cat();j.jump();System.out.println("------------------------");Dog d = new Dog();d.setAge(2);d.setName("小胡");d.eat();d.jump();System.out.println(d.getName()+" "+d.getAge());}
}

测试结果:

猫和狗类(继承、多态、抽象、接口)相关推荐

  1. Java猫和狗(继承,多态,抽象,接口版)上

    Java的继承,抽象,多态,接口的简单应用. 我们利用,猫和狗都是动物类,然后猫会抓鱼,狗会看门的这些方法来简单应用一下继承,抽象,多态,接口. 简单思路就是 1.定义动物类 2.定义猫,狗类,让他们 ...

  2. 黑马程序员—编程实现:猫和狗都会叫,但猫是喵喵的叫,狗是汪汪的叫?定义一个动物类,在动物类(animal)中有一个叫的抽象方法。 写两个子类,一个猫一个狗, * 继承自动物类,并实现相应的抽象方法。

    ------ Java培训.Android培训.iOS培训..Net培训.期待与您交流! -------package com.itheima; /*  *第9题:   * 编程实现:猫和狗都会叫,但 ...

  3. java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口

    数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...

  4. 继承 多态 抽象类 接口

    面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...

  5. 哪些类继承了Collection接口

    Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和List,分别定义 ...

  6. 【java】案例:猫与狗 【继承】【多态】

    package 多态;public class Animals {private String name;private int age;public int agee=9;//get,set方法pu ...

  7. Java多线程(2)--Thread类继承和Runnable接口创建线程

    Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现. Thread类的特性 每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run() ...

  8. js继承实现 狗类继承动物类

    > 需求说明 根据类图使用js实现继承的效果 #mermaid-svg-spN1nCOPNErXb3f4 .label{font-family:'trebuchet ms', verdana, ...

  9. 面向对象的四大特征 封装 继承 多态 抽象

    1.封装 广义: 类 方法 包 的定义本身就是一种封装 狭义: 在设计一个类的时候 将所有的属性设置为私有的 并对各个私有的属性设计相应的 存/取方法 来完成对属性的使用 私有化只能代表封装的特性 可 ...

  10. java接口和多态应用例题_Java基础进阶 第四天 抽象接口多态

    今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. 抽象类 1.1. 抽象类的产生 需求:创建类描述猫和狗的行为: 猫的行为:抓老鼠:吃鱼 ...

最新文章

  1. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )
  2. 如何从Java EE无状态应用程序连接到MongoDB
  3. 常用正则表达式整理【总结】
  4. qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境
  5. java调用oracle存储过程_做一点,记一点 ~ Java调用Oracle存储过程
  6. 很巧妙的进程防杀方法[秋镇菜原创]
  7. SQL 创建随机时间的函数
  8. 数据结构与算法之一快速排序
  9. azure 安全组_具有安全性和设计注意事项的Azure成本跟踪
  10. 项目经理案头手册学习系列【9、10】——资源强制进度计划、应用PERT编制进度计划...
  11. 计算机应用技术在医院的应用,计算机管理技术在医院的应用
  12. 有关异或符号'^'在c++编程中的应用
  13. Android Scheme协议与应用全解析
  14. 小新pro13 archlinux 显卡 声卡 驱动安装
  15. tablau desktop注册码本地停用虚拟机激活
  16. 和苗波玩吉他英雄,还有诺拉斯战士
  17. 【读报告】基于物联网技术的道岔转换设备检测专家平台的研究 研制报告
  18. 解密街头立体画的创作过程
  19. 关于“硬解码”与“软解码”
  20. hbuilderx安装教程_HBuilderX 的安装使用教程

热门文章

  1. Plist解析(拆分大图为小图)的核心算法讲解。
  2. MATLAB中将数字转换成罗马数字
  3. 获取验证码以及验证验证码
  4. C#个人邮箱发邮件给多个邮箱
  5. OpenWrt 把SD卡挂载到 /overlay
  6. 抖音mysql_抖音排行榜数据库设计方案
  7. word 多级编号列表
  8. 视频直播涉及的上行带宽问题~~
  9. 直角四面体面积公式推导
  10. 斯坦福句法分析 java_使用Stanford Parser进行句法分析