权限修饰符
权限修饰符的分类和具体作用范围:
常量
看视频回顾 p107
【使用黑窗口命令运行javap命令后】
【更多需要看视频回顾】
【注意事项】
【抽象的使用场景】
【需求】
【代码】
public abstract class Card {
private String name;
private double money;
public abstract void pay(double money);
public Card(String name, double money) {
this.name = name;
this.money = money;
}
public Card() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
public class WhiteCard extends Card{
@Override
public void pay(double money) {
System.out.println("您当前消费:"+money);
System.out.println("您卡片当前余额为:"+this.getMoney());
System.out.println("您实际支付为:"+money*0.8);
this.setMoney(this.getMoney()-money*0.8);
}
}
public class SilverCard extends Card{
@Override
public void pay(double money) {
System.out.println("您当前消费:"+money);
System.out.println("您卡片当前余额为:"+this.getMoney());
System.out.println("您实际支付为:"+money*0.85);
this.setMoney(this.getMoney()-money*0.85);
}
}
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
WhiteCard whiteCard = new WhiteCard();
whiteCard.setName("马浩楠");
whiteCard.setMoney(10000);
whiteCard.pay(500);
SilverCard silverCard = new SilverCard();
silverCard.setName("张林燕");
silverCard.setMoney(5000);
silverCard.pay(1000);
}
}
【案例需求】:
【代码】:
public abstract class Student {
public final void write(){
System.out.println("===《我的母亲》===");
System.out.println("你的母亲是怎么样的:");
//正文
System.out.println(mainContent());
System.out.println("我的母亲简直太好了!");
}
public abstract String mainContent();
}
public class StudentChild extends Student{
@Override
public String mainContent() {
return "very good!";
}
}
public class StudentMiddle extends Student{
@Override
public String mainContent() {
return "无法言语表达的好!";
}
}
public class Test {
public static void main(String[] args) {
StudentChild studentChild = new StudentChild();
studentChild.write();
StudentMiddle studentMiddle = new StudentMiddle();
studentMiddle.write();
}
}
【模板方法我们是建议使用 final 修饰的,这样更专业,原因是:】
//接口用关键字 interfact 来定义
public interfact 接口名{
//常量
//抽象方法
}
【接口:是一种规范,类似现实生活中的 “插座”】
接口的用法
接口是用来被类实现(implements)的,实现接口的类被称为实现类,实现类可以理解成所谓的子类
修饰符 class 实现类 implements 接口1,接口2,接口3,...{
//implements 实现关键字
}
从上面可以看出,接口可以被类单实现,也可以被多实现
接口实现的注意事项
default void run(){
System.out.println("开始跑");
}
static void inAddr(){
System.out.println("学习Java中!");
}
private void go(){
System.out.println("准备");
}
【注意】:JDK8 新增的 3 种方法我们自己在开发种很少使用,通常是 java 源代码设计到的,我们需要理解、识别语法、明白调用关系即可