第1关 封装、继承和多态进阶(一)
package case1;
import java.util.Scanner;
public class Task1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String dogName = sc.next();
String dogSex = sc.next();
String dogColor = sc.next();
String catName = sc.next();
String catSex = sc.next();
double catWeight = sc.nextDouble();
Dog dog=new Dog(dogName,dogSex,dogColor);
dog.talk();
dog.eat();
Cat cat=new Cat(catName,catSex,catWeight);
cat.talk();
cat.eat();
}
}
abstract class Pet {
String name;
String sex;
public abstract void talk();
public abstract void eat();
}
class Dog extends Pet {
String color;
public Dog(String name,String sex,String color){
this.name=name;
this.sex=sex;
this.color=color;
}
public void talk(){
System.out.println("名称:"+name+",性别:"+sex+",颜色:"+color+",汪汪叫");
}
public void eat(){
System.out.println(name+"吃骨头!");
}
}
class Cat extends Pet {
double weight;
Cat(String name,String sex,double weight){
this.name=name;
this.sex=sex;
this.weight=weight;
}
public void talk(){
System.out.println("名称:"+name+",性别:"+sex+",体重:"+weight+"kg,喵喵叫");
}
public void eat(){
System.out.println(name+"吃鱼!");
}
}
第2关 封装、继承和多态进阶(二)
package case2;
import java.util.Scanner;
public class Task2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String cName = sc.next();
String cSex = sc.next();
int cAge = sc.nextInt();
String eName = sc.next();
String eSex = sc.next();
int eAge = sc.nextInt();
Person test;
Person person1=new Chinese(cName,cSex,cAge);
showEat(person1);
Person person2=new English(eName,eSex,eAge);
showEat(person2);
Chinese d=(Chinese)person1;
d.shadowBoxing();
English e=(English)person2;
e.horseRiding();
}
public static void showEat(Person p){
p.eat();
}
}
abstract class Person {
public String name;
public String sex;
public int age;
abstract void eat();
}
class Chinese extends Person {
public String name;
public String sex;
public int age;
Chinese(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
void eat(){
System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age+",我是中国人,我喜欢吃饭!");
}
void shadowBoxing(){
System.out.println(name+"在练习太极拳!");
}
}
class English extends Person {
public String name;
public String sex;
public int age;
English(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
void eat(){
System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age+",我是英国人,我喜欢吃三明治!");
}
void horseRiding(){
System.out.println(name+"在练习骑马!");
}
}
## 第3关 封装、继承和多态进阶(三)
package case3;
import java.util.Scanner;
public class Task3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String pppName = sc.next();
int pppAge = sc.nextInt();
String bpName = sc.next();
int bpAge = sc.nextInt();
String ppcName = sc.next();
int ppcAge = sc.nextInt();
String bcName = sc.next();
int bcAge = sc.nextInt();
PingPangPlayer ppp=new PingPangPlayer(pppName,pppAge);
System.out.println(pppName+"---"+pppAge);
ppp.sleep();
ppp.eat();
ppp.study();
ppp.speak();
System.out.println("----------------");
BasketballPlayer bp=new BasketballPlayer(bpName,bpAge);
System.out.println(bpName+"---"+bpAge);
bp.sleep();
bp.eat();
bp.study();
System.out.println("----------------");
PingPangCoach ppc=new PingPangCoach(ppcName,ppcAge);
System.out.println(ppcName+"---"+ppcAge);
ppc.sleep();
ppc.eat();
ppc.teach();
ppc.speak();
System.out.println("----------------");
BasketballCoach bc=new BasketballCoach(bcName,bcAge);
System.out.println(bcName+"---"+bcAge);
bc.sleep();
bc.eat();
bc.teach();
System.out.println("----------------");
}
}
interface SpeakEnglish {
abstract void speak();
}
abstract class Person {
String name;
int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
void sleep(){
System.out.println("人都是要睡觉的");
}
abstract void eat();
}
abstract class Player extends Person {
Player(String name,int age){
super(name,age);
}
abstract void study();
}
abstract class Coach extends Person {
Coach(String name,int age){
super(name,age);
}
abstract void teach();
}
class PingPangPlayer extends Player implements SpeakEnglish {
PingPangPlayer(String name,int age){
super(name,age);
}
void eat(){
System.out.println("乒乓球运动员吃大白菜,喝小米粥");
}
void study(){
System.out.println("乒乓球运动员学习如何发球和接球");
}
public void speak(){
System.out.println("乒乓球运动员说英语");
}
}
class BasketballPlayer extends Player {
BasketballPlayer(String name,int age){
super(name,age);
}
void eat(){
System.out.println("篮球运动员吃牛肉,喝牛奶");
}
void study(){
System.out.println("篮球运动员学习如何运球和投篮");
}
}
class PingPangCoach extends Coach implements SpeakEnglish {
PingPangCoach(String name,int age){
super(name,age);
}
void eat(){
System.out.println("乒乓球教练吃小白菜,喝大米粥");
}
void teach(){
System.out.println("乒乓球教练教如何发球和接球");
}
public void speak(){
System.out.println("乒乓球教练说英语");
}
}
class BasketballCoach extends Coach {
BasketballCoach(String name,int age){
super(name,age);
}
void eat(){
System.out.println("篮球教练吃羊肉,喝羊奶");
}
void teach(){
System.out.println("篮球教练教如何运球和投篮");
}
}