标签:lan ret spl 抽象类 color main lang eth str
1.Java语言是单继承的,一个类的直接有且仅有一个。
若一个子类有多个父类,当父类有相同方法名时,子类无法正常调用。
2.Java语言可以多级继承。
public class A{}
public class B extends A{}
public class C extends B{}
如B继承A,C继承B,A也叫C的父类,只是间接继承。
*java.lang.Object是最高父类
3.一个子类只能有一个父类,但一个父类可以有多个子类。
如果父类当中方法不确定方法体的实现,那么该方法定义为抽象方法。
抽象方法所在的类,定义为抽象类
public abstract class A{ //A为抽象类
public abstract void method();// 抽象方法
}
1.不能直接创建new抽象类对象
2.必须有一个子类继承父类
3.子类必须覆盖重写父类中所有抽象方法
4.创建子类对象使用
1.抽象类不能创建对象,如果创建,编译无法通过而报错。
2.抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的。
3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
4.抽象类的子类,必须重写先后抽象父类中所有抽象方法,否则,编译无法通过而报错,除非该子类也是抽象类。
定义User类,有姓名和金额等变量
public class User { private String name;//姓名 private int money;//钱包金额 public User(){ } public User(String name, int money) { this.name = name; this.money = money; } //显示用户信息 public void display(){ System.out.println("我是"+name+",余额"+money+"元"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }
定义群主Manager类,实现发红包功能
import java.util.ArrayList; public class Manager extends User { public Manager(){ } public Manager(String name,int money){ super(name,money); } public ArrayList<Integer> send(int totalMoney, int count){ //一个集合存储若干个红包的金额 ArrayList<Integer> readList = new ArrayList(); //检查群主余额 int leftMoney = super.getMoney(); if(totalMoney > leftMoney){ System.out.println("余额不足"); return readList; } super.setMoney(leftMoney - totalMoney); int avg = totalMoney / count; int mod = totalMoney % count; for (int i = 0; i < count-1; i++) { readList.add(avg); } int last = avg + mod; readList.add(last); return readList; } }
定义成员Member类,实现收红包功能
import java.util.ArrayList; import java.util.Random; public class Member extends User { public Member(){ } public Member(String name,int money){ super(name,money); } public void receive(ArrayList<Integer> list){ int index = new Random().nextInt(list.size()); int delta = list.remove(index); int money = super.getMoney(); super.setMoney(money + delta); } }
测试类
import java.util.ArrayList; public class Test { public static void main(String[] args) { Manager manager = new Manager("群主",2000); Member member1 = new Member("member1",20); Member member2 = new Member("member2",60); Member member3 = new Member("member3",75); manager.display(); member1.display(); member2.display(); member3.display(); System.out.println("==================="); System.out.println("发红包了!"); ArrayList<Integer> readList = manager.send(1000,3); member1.receive(readList); member2.receive(readList); member3.receive(readList); manager.display(); member1.display(); member2.display(); member3.display(); } }
结果如下
明天学习接口咯!
标签:lan ret spl 抽象类 color main lang eth str
原文地址:https://www.cnblogs.com/Gazikel/p/13359931.html