day 12 2021 3 11从不同继承 多态 抽象类分别写猫与狗理解程序
继承方法版的猫与狗
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-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- 继承 多态 抽象类 接口
面向对象编程 包 继承 组合 多态 抽象类 接口 包 包(package)是组织类的一种方式. 使用包的主要目的是保证类的唯一性. java中已经提供给我们很多现成的类供我们选择,例如可以使用 imp ...
- java自学 part2 数组 类和对象 包 继承 多态 抽象类 接口
数组:arr 获取数组的长度:arr.length 数组转字符串: Arrays.toString(arr) 数组的拷贝: Arrays.copyOf(arr,arr.length) 数组的排序:Ar ...
- Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例
目录 采用继承的思想实现猫和狗的案例 采用多态的思想实现猫和狗的案例 采用抽象类的思想实现猫和狗的案例 采用接口的思想实现猫和狗的案例 采用继承的思想实现猫和狗的案例 分析: ①猫: 成员变量:姓名, ...
- 任天堂推出《塞尔达传说》GAMEampWATCH游戏机,预计要在 2021 年 11 月 12 日推出塞尔达版本的 GAMEampWATCH
模玩资讯:任天堂推出<塞尔达传说>GAME&WATCH游戏机 任天堂将自家起底基业商品GAME&WATCH结合招牌游戏有奇效!继去年此时推出<超级玛利欧兄 ...
- 笔记整理3----Java语言高级(三)11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包修饰符
11 综合练习+12 面向对象-static变量 与 代码块+13 面向对象-继承与抽象类+14 面向对象-接口与多态+15 面向对象-包&修饰符 第11天 综合练习 今日内容介绍 综合练习 ...
- 2021年11月国产数据库排行榜:openGauss闯入前三,Kingbase流行度与日俱增,TDengine厚积薄发
点击蓝字 关注我们 2021年11月的国产数据库流行度排行榜已在墨天轮发布,本月共有163家数据库参与排名.就前15名的总体情况来看,除openGauss反超OceanBase闯入前三,TDengin ...
- 北交所开市工作准备就绪 定于2021年11月15日开市
11月12日消息,北交所发布公告称,目前,北交所开市各项工作已准备就绪,定于2021年11月15日开市. 2021年11月12日,北交所发布<北京证券交易所合格境外机构投资者和人民币合格境外机构 ...
- 抑郁症最新研究进展(2021年11月)
推荐阅读:<AD.hi v.癌症.新药.基因编辑.CAR-t等最新进展合集(每周更新)> 据估计,全球有3.5亿人受到抑郁症的折磨,目前我国有超过9500万抑郁症患者,这种疾病会严重影 ...
最新文章
- 【leetcode】654. Maximum Binary Tree
- redis集合数据过期_关于redis性能问题分析和优化
- python中dom模块_Python中使用dom模块生成XML文件示例
- php定义常量、判断有没有被定义、预定义常量、显示所有常量
- spring中@Inject和@Autowired的区别?分别在什么条件下使用呢?
- golang学习之旅(2)- go的数据基本数据类型及变量定义方式
- clion windows安装
- SAP GRC 权限合规审计系统
- Jmeter5.0脚本录制
- 挑筋(挑治)疗法——针挑治疗痔疮
- android仿ios下拉框,android 自定义ListView仿IOS阻尼效果
- JAVA并发编程的书籍及资料
- linux音频函数接口,Linux音频驱动-OSS和ALSA声音系统简介及其比较
- 第九话 树结构实际应用
- c语言x20是什么意思,为什么vivo X20坚持不用TYPE-C插口?
- ubuntu设置root账号密码激活root账号
- 看过这篇文章,一切关于NFT的疑问都可以迎刃而解
- 【数据集】各类绝缘子、鸟巢及防震锤数据集汇总
- vue改变html的背景,vue动态改变背景图片demo分享
- 私有化部署——企业数据保护伞