一、理论作业
1、
2、
3、
4、
5、
6、
7、
final修饰其中的类是不能被继承的,以及其中的方法是不能被重写的。
abstract修饰的方法是抽象类,是可以被继承的,但是无法被实例化
abstract修饰的方法是抽象方法,没有函数体,可以被重写。
8、
good good
9、
抽象方法没有方法体 {
}
抽象类Employer不能被实例化
10、
public class Test {
public static void main(String[] args) {
Shape square = new Square();
System.out.println("正方形的面积:"+square.area(2));
Shape circle = new Circle();
System.out.println("圆形的面积:"+circle.area(3));
}
}
interface Shape {
double area(double d);
}
class Square implements Shape {
@Override
public double area(double d) {
return d*d;
}
}
class Circle implements Shape {
@Override
public double area(double d) {
return d*d*Math.PI;
}
}
二、实验作业
实验作业
一共有三题
1、猫狗题
创建main.java,cat.java,dog.java,animal.java
Animal.java
package com.company;
public abstract class Animal {
abstract void makeSound();
abstract void whenHappy();
abstract void whenAngry();
}
Dog.java
package com.company;
public class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Wrong");
}
@Override
void whenHappy() {
System.out.println("Tail up");
}
@Override
void whenAngry() {
System.out.println("Tail Down");
}
@Override
public String toString(){
return "Tail Up";
}
}
Cat.java
package com.company;
public class Cat extends Animal{
@Override
void makeSound() {
System.out.println("Meow");
}
@Override
void whenHappy() {
System.out.println("Tail Down");
}
@Override
void whenAngry() {
System.out.println("Tail Up");
}
@Override
public String toString(){
return "Tail Down";
}
}
Main.java
package com.company;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Animal[] animals = new Animal[5];
animals[0] = new Dog();
animals[1] = new Cat();
animals[2] = new Dog();
animals[3] = new Cat();
animals[4] = new Cat();
for (Animal animal : animals) {
if (animal instanceof Cat){
animal.whenAngry();
}else{
animal.whenHappy();
}
}
}
}
2、啮齿动物前半部分
前半部分需要用抽象类实现,总共创建五个java文件
Rodent.java
package com.company;
public abstract class Rodent {
protected String kind;
abstract String findFood();
void chewFood(){
System.out.println(kind+ "吃" + findFood());
}
}
Mouse.java
package com.company;
public class Mouse extends Rodent {
public Mouse(){
this.kind = "老鼠";
}
@Override
String findFood() {
System.out.println(kind+"从仓库里偷食物");
return "仓库里面偷来的大米";
}
}
Gerbil.java
package com.company;
public class Gerbil extends Rodent{
public Gerbil(){
this.kind = "鼹鼠";
}
@Override
String findFood() {
System.out.println(kind + "挖洞寻食");
return "地下昆虫";
}
}
Hamster.java
package com.company;
public class Hamster extends Rodent{
public Hamster(){
this.kind = "黄金大颊鼠";
}
@Override
String findFood() {
System.out.println(kind + "等投喂");
return "坚果、饲料";
}
}
Main.java
package com.company;
import java.util.Scanner;
import java.util.logging.Handler;
public class Main {
public static void main(String[] args) {
Rodent[] rodents = new Rodent[3];
rodents[0] = new Mouse();
rodents[1] = new Gerbil();
rodents[2] = new Hamster();
for(Rodent rodent:rodents){
rodent.chewFood();
}
}
}
3、啮齿动物后半部分
后半部分需要用接口实现,一共,七个java文件
Rodent.java
package com.company;
public interface Rodent {
String findFood();
void chewFood();
}
Flayable.java
package com.company;
public interface Flayable {
void fly();
}
Mouse.java
package com.company;
public class Mouse implements Rodent {
private String kind;
public Mouse(){
this.kind = "老鼠";
}
@Override
public String findFood() {
System.out.println(kind + "从仓库里偷食");
return "仓库里面偷来的大米";
}
@Override
public void chewFood() {
System.out.println(kind + "吃" + findFood());
}
}
Hamster.java
package com.company;
public class Hamster implements Rodent{
private String kind;
public Hamster(){
this.kind = "黄金大颊鼠";
}
@Override
public String findFood() {
System.out.println(kind + "等投喂");
return "坚果、饲料";
}
@Override
public void chewFood() {
System.out.println(kind + "吃" + findFood());
}
}
Gerbil.java
package com.company;
public class Gerbil implements Rodent{
private final String kind;
public Gerbil(){
this.kind = "鼹鼠";
}
@Override
public String findFood() {
System.out.println(kind + "挖洞寻食");
return "地下昆虫";
}
@Override
public void chewFood() {
System.out.println(kind+"吃"+findFood());
}
}
Ptereomyini.java
package com.company;
import com.company.Flayable;
import com.company.Rodent;
public class Pteromyini implements Rodent, Flayable {
private String kind;
public Pteromyini(){
this.kind = "鼯鼠";
}
@Override
public void fly() {
System.out.println("fly ---------!");
}
@Override
public String findFood() {
System.out.println(kind + "飞到树上找水果");
return "树上的水果和昆虫";
}
@Override
public void chewFood() {
System.out.println(kind + "吃" + findFood());
}
}
Main.java
package com.company;
import java.util.Scanner;
import java.util.logging.Handler;
public class Main {
public static void main(String[] args) {
Rodent[] rodents = new Rodent[4];
rodents[0] = new Mouse();
rodents[1] = new Gerbil();
rodents[2] = new Hamster();
rodents[3] = new Pteromyini();
for (Rodent rodent : rodents) {
rodent.chewFood();
if (rodent instanceof Pteromyini){
((Pteromyini) rodent).fly();
}
}
}
}