九、抽象类
一个类一个.java文件
1.设计一个抽象类Person和它的三个子类Student、Teacher和Worker,要求如下:
Person抽象类中包括name、age两个属性,可用带参数的构造方法为属性赋值;还有一个抽象方法getInfo(),该方法返回一个人的个人信息,返回String类型的结果。
Student、Teacher和Worker三个子类中通过实现Person抽象类中的getInfo()抽象方法,获取各自的个人信息。
在测试类中分别创建Student、Teacher和Worker三个子类的对象,并输出这些对象的个人信息。
//抽象父类Person
abstract class Person {
String name;
int age;
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public Person() {
} //构造方法
public abstract String getInfo(); //抽象方法
}
//子类Student 继承 父类Person
public class Student extends Person{
public Student(String name,int age) {
super(name,age);
}
public String getInfo() {
return "student\nname:"+name+"\nage:"+age;
}
}
//子类Teacher 继承 父类Person
public class Teacher extends Person{
public Teacher(String name,int age) {
super(name,age);
}
public String getInfo() {
return "teacher\nname:"+name+"\nage:"+age;
}
}
//子类Worker 继承 父类Person
public class Worker extends Person {
public Worker(String name,int age) {
super(name,age);
}
public String getInfo() {
return "worker\nname:"+name+"\nage:"+age;
}
}
//测试类
public class PersonTest {
public static void main(String[] args) {
Student student1 = new Student("Ammliy",19);
System.out.println(student1.getInfo());
Teacher teacher1 = new Teacher("Lin",27);
System.out.println(teacher1.getInfo());
Worker worker1 = new Worker("Jack",51);
System.out.println(worker1.getInfo());
}
}
2.设计一个抽象类Shape和它的两个子类Square和Circle,要求如下:
Shape抽象类中有一个抽象方法getArea(),该方法返回一个形状的面积,返回double类型的结果。
Square和Circle中实现了Shape抽象类中的getArea()抽象方法,分别求正方形和圆形的面积并返回。
在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积。
//抽象父类Shape
abstract class Shape {
int width;
int r;
abstract double getArea();
}
//子类Circle 继承 父类Shape
public class Circle extends Shape{
public double getArea() {
return r*r*3.14;
}
}
//子类Square 继承 父类Shape
public class Square extends Shape{
public double getArea() {
return width*width;
}
}
//测试类
public class ShapeTest {
public static void main(String[] args) {
Square s = new Square();
s.width = 2;
System.out.println("边长为2的正方形面积:"+s.getArea());
Circle c = new Circle();
c.r = 3;
System.out.println("半径为3的圆形面积:"+c.getArea());
}
}
十、接口
定义接口:interface
实现接口:implements
基础知识点:接口里只能包含abstract抽象方法、final常量、default默认方法和