A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© PeaceMaker98 初级黑马   /  2019-9-25 19:57  /  828 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、多态
多态概述:同一个对象,在不同时刻表现出来的不同形态。
多态前提:
1.有继承/实现关系
2.有子类方法重写
3.有父类引用指向子类对象
多态中成员访问特点:
成员变量特点——
编译看左边,执行看左边
成员方法特点——
编译看左边,执行看右边
But why?
方法被重写后,就会执行子类中被重写的方法内容。
弊端:多态中父类对象不能调用子类独有的方法。
多态的好处:简化代码的书写量,如下图:
public static void main(String[] args) {
        Animal a=new Cat();
        Animal d=new Dog();
        show(a);
        show(d);

    }

    public static void show(Animal an){
        an.eat();
        if(an instanceof Dog){
            Dog d=(Dog)an;//强制转换
            d.watchHouse();//通过把父类转换成子类,再调用子类独有方法
        }
        if(an instanceof Cat){
            Cat c=(Cat)an;//强制转换
            c.catchMouse();//通过把父类转换成子类,再调用子类独有方法
        }
    }二、抽象类
what is 抽象类?
抽象的事物,没有具体的对象表示,叫做抽象类,比如:动物类。
抽象类的方法特点:
1.抽象类中可以啥都没有
2.抽象方法必须在抽象类中
3.抽象子类中必须覆盖重写父类所有抽象方法
4.抽象类不能直接创建抽象类对象
抽象类的成员特点:
1.可以有成员变量,即可以常量,也可以变量。
2.有构造方法,作用是:用于子类访问父类构造方法,并初始化父类成员
3.可以有普通方法,也可以有抽象方法
三、接口
特点:
1.用关键字 interface修饰
2.类实现接口用 implements表示
格式:public class 类名 implements 接口名{}
3.接口不能实例化
参照多态的方式进行实例化
4.接口的实现类
要么重写抽象类中所有抽象方法
要么是个抽象类
成员变量特点:
1.变量都是默认被final修饰的常量
2.方法都是抽象方法
3.接口没有构造方法



一、基本类型包装类
随记:集合只能存储引用类型
作用:基本类型变成包装类,方便调用各种方法
Integer:
概述:包装一个基本类型int的值,把基本类型int转换成包装类,便于各种操作.
Integer integer = Integer.valueOf(100);
System.out.println(integer);//输出原值

Integer integer1 = Integer.valueOf("12345");
System.out.println(integer1);//输出12345,不能带字母
int和String相互转换:
int--------String:

//Int转String
//方式一:拼接
int num=100;
String s=""+num;
System.out.println(s);//输出  (String类型)100
//方式二:用String调用valueOF()方法
String s2=String.valueOf(num);
System.out.println(s2);
String--------int:
普遍方式如下:调用parseInt方法

String s="11111";
int i1 = Integer.parseInt(s);//String直接转int
System.out.println(i1);//输出11111拆箱和装箱:
装箱:  基类------转成包装类

//装箱
int i=100;
Integer.valueOf(i);
拆箱:  包装类------转成基类

//装箱
int i=100;
Integer.valueOf(i);
//拆箱
int b=Integer.valueOf(i);
System.out.println(b);
自动拆装箱:

//自动装箱
Integer I=100;
//自动拆箱
int i=I;日期类:
Date():当前时间
Date(long x):传入一个long值x(毫秒),则从1970 0时0分+传入的毫秒值开始
getTime和setTime:

Date d=new Date();
//获取当前毫秒数
long time = d.getTime();
System.out.println(time);
//获取当前毫秒数
long time2=System.currentTimeMillis();
d.setTime(time2);
System.out.println(time2);
SimpleDateFormat:
可以按照指定的模板输出当前日期
Calendar:
getInstance:获取日历字段667

Calendar c=Calendar.getInstance();//多态形式,
    int year=c.get(Calendar.YEAR);
    int month=c.get(Calendar.MONTH);
    int date=c.get(Calendar.DATE);
    int hour=c.get(Calendar.HOUR);
    int min=c.get(Calendar.MINUTE);
    System.out.println(year+"年"+month+"月"+date+"日"+hour+"时"+min+"分");
}





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马