立即学习:https://edu.csdn.net/course/play/24609/274883?utm_source=blogtoedu
1、重点掌握图形和接口相关的代码。
2、自定义抽象类 Account 实现封装,特征:账户余额( balance ) ,在该类中提供一个计算利息并返回的抽象方法。自定义 FixedACcount 类继承Account类并重写抽象方法,要求在 main 方法中使用多态方式构造对象并存入 1000元,计算利息后打印出来(其中利率 0.003 )。
3、定义InterfaceA接口,里面含有一个抽象方法 int method(int n);
定义 ClassA 类实现 InterfaceA 接口并重写 method 方法,要求计算 1 到 n 的和并返回
定义 ClassB 类实现 InterfaceA 接口并重写 method 方法,要求计算 n 的阶乘并返回;
定义 TestInterface 测试类,里面包含一个参数为 IrlterfaceA 接口形参的方法,并在该方法体中调用method方法,最后在main方法中调用该方法。
package cn.itxdl.day11;
public abstract class Account {
private int balance;
public Account() {
super();
}
public Account(int balance) {
super();
setBalance(balance);
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
if(balance>0) {
this.balance = balance;
}else {
System.out.println("不合理");
}
}
//提供一个抽象方法返回利息
public abstract double getlixi();
//abstract 关键字和final关键字不能共同修饰一个方法 final不能被重写
//public abstract final double getlixi();
//abstract 关键字和 static 关键字不能共同修饰一个方法。抽象方法不能被直接调用 static 可以使用类名.调用
//public abstract static double getlixi();
//private 和 abstract 不能共同修饰一个放,private 修饰的方法不能被继承
//private abstract double getlixi();
}
package cn.itxdl.day11;
public class FixedAccount extends Account {
public FixedAccount(int i) {
// TODO Auto-generated constructor stub
//调用父类有参构造方法 把i传给父类的构造方法 setBalance(balance)
super(i);
}
@Override
public double getlixi() {
// TODO Auto-generated method stub
//计算利息 金额 乘以 利率
return getBalance()*0.003;
}
public static void main(String[] Ages) {
//使用构造方法存入1000元
Account ac = new FixedAccount(1000);
System.out.println("利息是"+ ac.getlixi());
}
}
定义InterfaceA接口,里面含有一个抽象方法 int method(int n);
package cn.itxdl.day11;
public interface InterfaceA {
public abstract int method(int n);
}
定义 ClassA 类实现 InterfaceA 接口并重写 method 方法,要求计算 1 到 n 的和并返回
package cn.itxdl.day11;
public class ClassA implements InterfaceA {
@Override
public int method(int n) {
// TODO Auto-generated method stub
//累加 m+ =i;
int m = 0;
for (int i=1;i<= n;i++) {
// m = m+i;
m=m+i;
};
return m;
}
/*
* public static void main(String[] args) { // TODO Auto-generated method stub
* ClassA c = new ClassA(); System.out.println(c.method(100));
*
* }
*/
}
定义 ClassB 类实现 InterfaceA 接口并重写 method 方法,要求计算 n 的阶乘并返回;
package cn.itxdl.day11;
public class ClassB implements InterfaceA {
@Override
public int method(int n) {
// TODO Auto-generated method stub
//阶乘
int m =1;
for (int i =1 ; i<=n ; i++) {
m=m*i;
}
return m;
}
/*
* public static void main(String[] Arges) { ClassB b= new ClassB();
* System.out.println(b.method(10)); }
*/
}
定义 TestInterface 测试类,里面包含一个参数为 IrlterfaceA 接口形参的方法,并在该方法体中调用method方法,最后在main方法中调用该方法。
package cn.itxdl.day11;
public class TestInface {
//使用InterfaceA 接口形参
public int sum(InterfaceA m) {
return m.method(10);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestInface s= new TestInface();
System.out.println("结果等于"+s.sum(new ClassA())); //调用A类的重写方法 累加
System.out.println("结果等于"+s.sum(new ClassB())); //调用B类的重写方法 阶乘
}
}