【java】学习路线14-抽象类、多态
/*
抽象类 abstract
abstract class A{
}
注意abstract类中不一定需要有abstract方法
但是有abstract方法的类中,该类一定是abstract方法
抽象类不可以被构造,一般被用于继承
如果一个类继承自一个抽象类,那么抽象类的方法必须要在子类中完善(覆盖)。
*/
//忽然发现多态+抽象类这样的组合非常好用啊!
public class Learn02{
public static void main(String[] aa){
//A a = new A();//A是抽象的; 无法实例化
B b = new B();
b.method1();
//看似是A,实际存的是B
//此时A的抽象方法已经覆盖了,所以可以直接调用
A a = new B();
a.method1();
System.out.println("----------");
Staff p1 = new Programmer("1001","ckmm");
p1.signIn();
p1.work();
Staff p2 = new Boss("1002","Remoo",10002.98f);
p2.signIn();
p2.work();
System.out.println("----------");
}
}
abstract class A{
private int a ;
abstract void method1();
}
class B extends A{
public void method1(){
System.out.println("覆盖了抽象类的方法");
}
}
//类似一个模板
abstract class Staff{
private String id;
private String name;
public Staff(String id,String name){
this.id = id;
this.name = name;
}
public void signIn(){
System.out.println(name + "已签到");
}
public abstract void work();
}
class Programmer extends Staff{
public Programmer (String id , String name){
super(id,name);//父类构造方法
}
//实现(覆盖)
public void work(){
System.out.println("写程序");
}
}
class Boss extends Staff{
private float bonus;
public Boss (String id , String name,float bonus){
super(id,name);//父类构造方法
this.bonus = bonus;
}
//实现(覆盖)
public void work(){
System.out.println("管理");
}
}
最新文章
- C# 生成表格代碼
- 关于AngularJs中的路由学习总结
- Session的SqlServer模式的配置
- 每天一个linux命令(40):watch命令
- coco2dx实现翻拍效果
- linux内核中jiffies的回绕问题【转】
- 【转载】使用barman备份PostgreSQL
- java 23种设计模式及具体例子 收藏有时间慢慢看
- charles proxy
- UI-程序的运行顺序
- C++ STL知识点小结
- 【三分搜索算法】UVa 10385 - Duathlon
- sql server抓取表结构的语句
- nginx 中location和root
- 最难忘的Bug调试经历
- editplus使用:非法字符: \65279
- eclipse修改编译路径
- springMvc <;form action=";";>;提交跳转路径问题
- CentOS 7 学习(二) 配置Nginx反向代理
- .Net Core微服务系列--开篇
热门文章
- go-zero微服务实战系列(三、API定义和表结构设计)
- rpm 系 linux 系统中 repo 文件中的 $release 到底等于多少?
- JavaScript产生随机颜色
- 从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
- sql-DML-增删改
- Modeling Conversation Structure and Temporal Dynamics for Jointly Predicting Rumor Stance and Veracity(ACL-19)
- @Async注解的坑,小心
- Idea 的Test测试报错:java.lang.IllegalStateException: Failed to load ApplicationContext
- 2022-07-12 第六组 润土 JavaScript02学习笔记
- 5-2 SpringCloud | 微服务