抽象类:创建一个Vehicle类并将它声明为抽象类。在Vehicle类中声明一个抽象方法NoOfWheels方法,使它返回一个字符串值。创建两个类Car和Motorbike从Vehicle类继承,并在这两个类中实现NoOfWheels方法。在Car类中,应当返回“四轮车”信息;而在Motorbike类中,应当返回“双轮车”信息。创建另一个带main方法的类 在该类中创建Car和Motorbike的实例 并在控制台中显示消息。
Car.java
public class Car extends Vehicle {
@Override
public String NoOfWheels(){
return "四轮车";
}
}
Motorbike.java
public class Motorbike extends Vehicle{
@Override
public String NoOfWheels(){
return "双轮车";
}
}
Test.java
public class Test {
public static void main(String[] args) {
Vehicle car1 = new Car();
Vehicle bike1 = new Motorbike();
System.out.println(car1.NoOfWheels());
System.out.println(bike1.NoOfWheels());
}
}
Vehicle.java
public abstract class Vehicle {
public abstract String NoOfWheels();
}
接口:创建一个名称为Vehicle的接口,在接口中添加两个方法start()和stop()。在两个名称分别为Bike和Bus的类中实现Vehicle接口,实现接口中的方法,在方法中输出车辆信息。创建一个名称为InterfaceDemo的类,在InterfaceDemo的main()方法中创建Bike和Bus对象,并访问start()和stop()方法。
Bike.java
public class Bike implements Vehicle{
@Override
public void start(){
System.out.println("自行车-start");
}
@Override
public void stop(){
System.out.println("自行车-stop");
}
}
Bus.java
public class Bus implements Vehicle {
@Override
public void start(){
System.out.println("公交车-start");
}
@Override
public void stop(){
System.out.println("公交车-stop");
}
}
Vehicle.java
public interface Vehicle {
public void start();
public void stop();
}
InterfaceDemo.java
public class InterfaceDemo {
public static void main(String[] args) {
Vehicle bike = new Bike();
Vehicle bus = new Bus();
bike.start();
bike.stop();
bus.start();
bus.stop();
}
}
请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿 吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方 法、fly()方法。
A.java
public interface A {
public void fly();
}
Animal.java
public class Animal {
public void eat(){
System.out.println("吃东西");
}
}
Bird.java
public class Bird extends Animal implements A {
@Override
public void fly(){
System.out.println("鸟儿飞翔");
}
@Override
public void eat(){
System.out.println("鸟儿吃虫");
}
}
Test.java
public class Test {
public static void main(String[] args) {
Animal b = new Bird();
b.eat();
Bird b1 = (Bird) b ;
b1.eat();
b1.fly();
}
}
编写一个Person抽象类,要求含有姓名(name)年龄(age)两个私有属性以及吃饭(eat) 和睡觉(sleep)两个抽象方法,并写出带参构造方法,创建学生(Student)和工人(Worker)两个类,继承Person类,学生类多出了私有属性学号和学习方法(输出我爱学习),工人类多出了私有属性工号和工作方法(输出我爱工作),在主函数中创建学生和工人类的实例对象,使用构造方法赋值,并输出所有属性和方法。
显示结果如下:
姓名:李四,年龄:18,学号:1024
食堂吃饭
我爱学习
姓名:张三,年龄:20,工号:1025
自己做饭
在家躺着睡觉
我爱工作
Person.java
public abstract class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public abstract void eat();
public abstract void sleep();
/**
* 获取
* @return name
*/
public String getName() {
return name;
}
/**
* 设置
* @param name
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取
* @return age
*/
public int getAge() {
return age;
}
/**
* 设置
* @param age
*/
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "姓名:"+this.name+", 年龄:"+this.age;
}
}
Student.java
public class Student extends Person{
private int stuNum;
public Student(String name,int age,int stuNum){
super(name,age);
this.stuNum=stuNum;
}
public Student() {
}
public Student(int stuNum) {
this.stuNum = stuNum;
}
public void study() {
System.out.println("我爱学习");
}
@Override
public void eat() {
System.out.println("食堂吃饭");
}
@Override
public void sleep() {
}
/**
* 获取
* @return stuNum
*/
public int getStuNum() {
return stuNum;
}
/**
* 设置
* @param stuNum
*/
public void setStuNum(int stuNum) {
this.stuNum = stuNum;
}
@Override
public String toString() {
return super.toString()+", 学号:"+this.stuNum;
}
}
Worker.java
public class Worker extends Person {
private String wNum;
public Worker() {
}
public Worker(String wNum) {
this.wNum = wNum;
}
public void work(){
System.out.println("我爱工作");
}
public Worker(String name,int age,String stuNum){
super(name, age);
this.wNum=stuNum;
}
@Override
public void eat() {
System.out.println("自己做饭");
}
@Override
public void sleep() {
System.out.println("在家躺着睡觉");
}
/**
* 获取
* @return wNum
*/
public String getWNum() {
return wNum;
}
/**
* 设置
* @param wNum
*/
public void setWNum(String wNum) {
this.wNum = wNum;
}
@Override
public String toString() {
return super.toString()+", 工号:"+this.wNum;
}
}
Test.java
public class Test {
public static void main(String[] args) {
Student stu = new Student("小A",20,184001);
Worker worker = new Worker("老林",35,"101010");
System.out.println(stu);
stu.eat();
stu.study();
System.out.println(worker);
worker.eat();
worker.sleep();
worker.work();
}
}