手记

乌托邦漂流者的Java学习笔记10

刚听学长说,硬着头皮上
多态:对象多种形态
1.引用多态:父类的引用可以指向子类的对象和本类的对象,
2.方法多态:父类的引用调用子类的继承的方法或者被重写的方法,但子类自己定义的方法不能被调用;
引用类型转换:
小类向大类:隐式类型转换/自动类型转换
大类向小类:强制类型转换,存在风险用instanceof运算符解决
instanceof返回值为布尔类型,可搭配if语句使用
抽象类:abstract修饰
试用:
1.某些类知道包含怎样的方法,但是不知道如何实现,
2.从某些有相同特征的类抽象出一个类,避免子类的随意性;
使用规则:
a.abstract修饰抽象类:
b.abstract定义抽象方法,只有声明,没有实现
c.包含抽象方法的类是抽象类:
d.抽象类中可以包含普通的方法,也可以不包含抽象方法
d.抽象类可以定义引用对象,不可以直接创建:
接口:
定义:接口可以看做一个特别的类,由全局常量和公共的抽象方法组成;
类是一种实现体,而接口定义了实现的规范,他不关心具体数据,也不关心如何实现,只规定类中必须提供的方法;
语法:【修饰符】(abstract) interface 接口名【extends 父接口1,父接口2...】{
常量定义。。。
抽象方法定义。。。
}
注意:修饰符只能用public,是要被人继承的,如果abstract没显示,自动加上
接口中属性是常量,即使定义不加上public static final代码,系统会自动加上,
接口中方法都为抽象方法,即使不加上public abstract,系统也会自动加上
实现:implements,Java只能继承一个父类不够灵活,可通过implements进行补充,继承的父类要在实现的接口之前。定义接口名字一般要在前面加上I
PS:使用过程中,还与匿名内部类配合使用,
匿名内部类:没有名字的内部类,多用于关注实现而不关注类的名称;

        IPlayGame ip3=new IPlayGame() {
            public void play() {
                System.out.println("使用内部类方式1");
            }
        };

        new IPlayGame() {
            public void play() {
                System.out.println("使用内部类方式2");
            }
        }.play();

UML:(Unified Modeling Language)同一建模语言或标准建模语言,它是一种图形化语言,为软件开发所有阶段提供模型化,可视化支持:
常用的UML图:
1.用例图:
2.序列图:
3.类图
UML建模工具:Visio等等,

1人推荐
随时随地看视频
慕课网APP