继承方法版的猫与狗

main

package com.wang.API.DogAndCat;public class AnimalDemo {public static void main(String[] args) {//创建猫类对象Cat cat1 =new Cat();cat1.setName("加菲");cat1.setAge(1);System.out.println(cat1.getName()+cat1.getAge());cat1.catchMouth();Cat cat2 = new Cat("美短",2);System.out.println(cat2.getName()+cat2.getAge());//狗类创建Dog dog = new Dog("金毛",10);System.out.println(dog.getName()+dog.getAge());dog.lookDog();}
}

父类 Animal类

package com.wang.API.DogAndCat;public class Animal {private String name;private int age;public Animal() {}public Animal(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;}
}

Dog类

package com.wang.API.DogAndCat;public class Dog extends Animal{public Dog() {}public Dog(String name, int age) {super(name, age);}public void lookDog(){System.out.println("狗看门");}
}

Cat类

package com.wang.API.DogAndCat;public class Cat extends Animal {public Cat() {}public Cat(String name, int age) {super(name, age);}public void catchMouth(){System.out.println("猫抓老鼠");}
}

多态版的猫与狗

main类

package com.wang.API.DogAndCat2;public class AnimalDemo {public static void main(String[] args) {//猫类Animal cat1 = new Cat("加菲",5);System.out.println(cat1.getName()+ cat1.getAge());cat1.eat();//狗类Animal dog =new Dog("金毛",10);System.out.println(dog.getName()+ dog.getAge());dog.eat();}
}

Animal类

package com.wang.API.DogAndCat2;public class Animal {private String name;private int age;public Animal() {}public Animal(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;}public void eat(){System.out.println("动物吃东西");}
}

Cat类

package com.wang.API.DogAndCat2;public class Cat extends Animal{public Cat() {}public Cat(String name, int age) {super(name, age);}//重写父类中的eat方法@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

Dog类

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

抽象类

在Java中,一个没有方法体的方法被定义为抽象方法;而类中如果有抽象方法,那么该类必须被称为抽象类

抽象方法的创建

package com.wang.API.Demo.Demo1;public abstract class Animal //抽象类 用abstract修饰
{//抽像方法 用abstract修饰public abstract void eat();
}
  • 抽象方法必须在抽象类中,抽象类中可以不存在抽象方法
  • 抽象类无法直接在main类中实例化,可以通过子类重写方法,从而实例化
  • 如果一个子类继承了抽象类,要么重写父类中的所有抽象方法,要么其本身就是定义为一个抽象类

举例:

main类

package com.wang.API.Demo.Demo1;public class Demo1 {public static void main(String[] args) {Animal a = new Cat();a.eat();}
}

Animal类

package com.wang.API.Demo.Demo1;public abstract class Animal //抽象类 用abstract修饰
{//抽像方法 用abstract修饰public abstract void eat();
}

Cat类

package com.wang.API.Demo.Demo1;public class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

抽象类版本猫与狗

main类

package com.wang.API.DogAndCat3;public class AnimalDemo {public static void main(String[] args) {//猫类测试Animal cat1 = new Cat("布偶",2);System.out.println(cat1.getName()+cat1.getAge());cat1.eat();//狗类测试Animal dog1 = new Dog("金毛",10);System.out.println(dog1.getName()+ dog1.getAge());dog1.eat();}
}

Animal类

package com.wang.API.DogAndCat3;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 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;}public abstract void eat();
}

Cat类

package com.wang.API.DogAndCat3;public class Cat extends Animal{public Cat() {}public Cat(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("猫吃鱼");}
}

Dog类

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

day 12 2021 3 11从不同继承 多态 抽象类分别写猫与狗理解程序相关推荐

  1. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  2. 继承 多态 抽象类 接口

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

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

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

  4. Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例

    目录 采用继承的思想实现猫和狗的案例 采用多态的思想实现猫和狗的案例 采用抽象类的思想实现猫和狗的案例 采用接口的思想实现猫和狗的案例 采用继承的思想实现猫和狗的案例 分析: ①猫: 成员变量:姓名, ...

  5. 任天堂推出《塞尔达传说》GAMEampWATCH游戏机,预计要在 2021 年 11 月 12 日推出塞尔达版本的 GAMEampWATCH

    模玩资讯:任天堂推出<塞尔达传说>GAME&ampWATCH游戏机 任天堂将自家起底基业商品GAME&ampWATCH结合招牌游戏有奇效!继去年此时推出<超级玛利欧兄 ...

  6. 笔记整理3----Java语言高级(三)11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包修饰符

    11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包&修饰符 第11天 综合练习 今日内容介绍 综合练习 ...

  7. 2021年11月国产数据库排行榜:openGauss闯入前三,Kingbase流行度与日俱增,TDengine厚积薄发

    点击蓝字 关注我们 2021年11月的国产数据库流行度排行榜已在墨天轮发布,本月共有163家数据库参与排名.就前15名的总体情况来看,除openGauss反超OceanBase闯入前三,TDengin ...

  8. 北交所开市工作准备就绪 定于2021年11月15日开市

    11月12日消息,北交所发布公告称,目前,北交所开市各项工作已准备就绪,定于2021年11月15日开市. 2021年11月12日,北交所发布<北京证券交易所合格境外机构投资者和人民币合格境外机构 ...

  9. 抑郁症最新研究进展(2021年11月)

    ​​推荐阅读:<AD.hi v.癌症.新药.基因编辑.CAR-t等最新进展合集(每周更新)> 据估计,全球有3.5亿人受到抑郁症的折磨,目前我国有超过9500万抑郁症患者,这种疾病会严重影 ...

最新文章

  1. 【leetcode】654. Maximum Binary Tree
  2. redis集合数据过期_关于redis性能问题分析和优化
  3. python中dom模块_Python中使用dom模块生成XML文件示例
  4. php定义常量、判断有没有被定义、预定义常量、显示所有常量
  5. spring中@Inject和@Autowired的区别?分别在什么条件下使用呢?
  6. golang学习之旅(2)- go的数据基本数据类型及变量定义方式
  7. clion windows安装
  8. SAP GRC 权限合规审计系统
  9. Jmeter5.0脚本录制
  10. 挑筋(挑治)疗法——针挑治疗痔疮
  11. android仿ios下拉框,android 自定义ListView仿IOS阻尼效果
  12. JAVA并发编程的书籍及资料
  13. linux音频函数接口,Linux音频驱动-OSS和ALSA声音系统简介及其比较
  14. 第九话 树结构实际应用
  15. c语言x20是什么意思,为什么vivo X20坚持不用TYPE-C插口?
  16. ubuntu设置root账号密码激活root账号
  17. 看过这篇文章,一切关于NFT的疑问都可以迎刃而解
  18. 【数据集】各类绝缘子、鸟巢及防震锤数据集汇总
  19. vue改变html的背景,vue动态改变背景图片demo分享
  20. 私有化部署——企业数据保护伞

热门文章

  1. 机器学习模型评价指标分析
  2. 不知道麦克风阵列是何方神圣?这篇文章告诉你!
  3. 【数据挖掘实战】——舆情分析:对微博文本进行情绪分类
  4. TransactionScope
  5. 九龙证券|直逼1.5万亿!A股融资余额创年内新高,青睐这些行业和个股
  6. java中静态代码块详解
  7. 哪个星座男最会疼女友?
  8. RocketMQ源码解析:同步刷盘和异步刷盘的实现
  9. 皮皮仔!在 vscode 里操作数据库~
  10. WebSocket集群解决方案