1.设计Bird、Fish类,都继承自抽象类Animal,实现其抽象方法info( ),并输出它们的信息。
要求如下:
1) 定义抽象类Animal,具有age属性、info( )方法
2) 定义Bird类,具有本身的特有属性color
3) 定 义Fish类,具有本身的特有属性weight
public class jicheng {
public static void main(String[] args) {
//创建对象,输出信息。
Brid b=new Brid();
Fish f=new Fish();
b.info();
f.info();
}
}
abstract class Animal{//定义抽象类Animal
String age;//age属性
void info() {//info方法
}
}
class Brid extends Animal{//定义Brid类继承Animal类
String color="红";//Brid类特有的属性color
String age="12";
public void info() {//子类重写父类方法
System.out.println(age);
System.out.println(color);
}
}
class Fish extends Animal{//定义Fish类继承Animal类
String weight="88kg";//Fish类特有属性wright
String age="11";
public void info() {//重写
System.out.println(age);
System.out.println(weight);
}
}
2.编写一个Java应用程序,该程序包括3个类:Animal、Monkey类和测试类。
要求如下:
(1)Animal有name(名字)、age(年龄)两个属性。有个带参构造方法,并且有个speak()抽象方法
(2)Monkey是Animal的子类,显示调用父类的带构造,在Monkey类中重写父类的方法speak(),在speak方法中输出“别说话!”的信息。在Monkey类中新增方法void think(),在think方法中输出“认真思考!”。
(3)测试类中测试程序
Animal
package shangji02;
//Animal有speak()抽象方法,故为抽象类。
public abstract class Animal {
String name;//属性name
String age;//属性age
Animal (String name,String age){//带参构造方法
System.out.println("父类带参构造被调用");
}
void speak() {//speak抽象方法
}
}
Monkey
package shangji02;
//Monkey是Animal的子类
public class Monkey extends Animal {
//调用父类的带参构造
Monkey(String name, String age) {
super(name, age);
}
//重写父类的方法speak()
void speak() {
System.out.println("别说话!");
}
//新增方法void think(),在think方法中输出“认真思考!”
void think() {
System.out.println("认真思考!");
}
}
测试类
package shangji02;
public class DEMO {
public static void main(String[] args) {
//创建对象
Monkey m=new Monkey(null, null);
//输出
m.speak();
m.think();
}
}
3.、编写程序,求柱体的体积:
(1)、为柱体的底面设计一个接口Geometry,包含计算面积的方法getArea();
(2)、为柱体设计类pillar,要求:
a)有两个成员变量,底面和高度。底面是任何可以计算面积的几何形状。
b)实现构造方法,对成员变量赋值。
c)包含成员方法,计算柱体pillar的体积。
(3)、编写测试类圆形类、矩形类实现Geometry接口,编写测试类Test,分别用圆形、矩形作为柱体的底面,并计算其体积。
package shangji03;
interface Geometry{//设计接口,包含方法getArea();
public double getArea();
}
class Pillar{
Geometry bottom;//底面接口
double height;
public Pillar(Geometry bottom, double height){//带参构造方法
//赋值操作
this.bottom=bottom;
this.height=height;
}
//创建成员方法,计算体积
public double Volume(){
return bottom.getArea()*this.height;
}
}
class Circle implements Geometry{//创建圆形类
double radius;
public Circle(double radius){//调用本类成员变量
this.radius = radius;
}
public double getArea() {//重写接口方法
return Math.PI*this.radius*this.radius;
}
}
class Rect implements Geometry{//创建矩形类
double wide,length;
public Rect(double wide, double length){//调用本类成员变量
this.wide = wide;
this.length = length;
}
public double getArea() {//重写接口方法
return wide*length;
}
}
public class shangji_03 {
public static void main(String[] args) {
//创建对象
Pillar pillar;
Geometry bottom;
bottom = new Rect(10, 5);
pillar = new Pillar(bottom, 5);
System.out.println("矩形底的柱体的体积:" + pillar.Volume());
bottom = new Circle(5);
pillar = new Pillar(bottom, 5);
System.out.println("圆形底的柱体的体积:" + pillar.Volume());
}
}
4.创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。创建类Student实现Person接口,并对自己的“学生”属性的成员变量sID、speciality设置值和获得它们值所组成的字符串信息。
编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错
package shangji04;
public class shangji_04 {
public static void main(String[] args) {
// 创建对象,并输出。
Student s=new Student();
s.setDate("林青霞", "女", "20");
System.out.println(s.getDate());
}
}
interface Person{//创建Person接口
//创建setDate方法,对“人”属性name、sex和birthday赋值
public void setDate(String name,String sex,String birthday);
//创建getData()方法,获得这些属性组成的字符串信息。
public String getDate();
}
class Student implements Person{
private String name;
private String sex;
private String birthday;
private String sID="2020";
private String speciality="写代码";
//编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错
@Override
public void setDate(String name,String sex,String birthday) {
this.name=name;
this.sex=sex;
this.birthday=birthday;
}
@Override
public String getDate() {
return "名字:"+name+"\n性别:"+sex+"\n生日:"+birthday+"\nID:"+sID+"\n特长:"+speciality;
}
}
5.写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后在编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且可以调用子类心中的方法g输出希腊字母表。
package shangji05;
public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
a.f();
B b=new B();
b.f();
b.g();
}
}
class A {
public void f() {
System.out.println("英文字母表");
}
}
class B extends A {
public void g() {
System.out.println("希腊字母表");
}
}