-
Dog dog=new Dog();
Animal animal=dog;//自动类型转换 向上类型转换
if(animal instanceof Dog){
Dog dog2=(Dog)animal;//强制类型转换 向下类型转换 将父类引用强制转换成子类引用
}else{
System.out.println("无法进行类型转换 转换成Dog类型");
if(animal instanceof Cat){
Cat cat=(Cat)animal;//在编译时Cat类型用了强制符是没问题 但是在运行时发现有两个类型不一致就会报错
}else{
System.out.println("无法进行类型转换 转换成Cat类型");
此时就可以用instanceof运算符避免类型转换时的安全问题
查看全部 -
主要的:类是模子,字面上人们把有部分相同相似的归为一类这是类 在一类里根据不同差异分出具体这是对象。而java里类和对象的关系则是想象与具现的关系
查看全部 -
如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。
如果自己定义了一个有参的构造方法 系统就不会自动定义一个无参的构造方法 。
如果显示的调用构造方法,必须在子类的构造方法的第一行。
查看全部 -
接口中方法不能有方法体,同时方法的访问修饰符不能是 private 和 protected
查看全部 -
super关键字的应用
查看全部 -
super关键字
查看全部 -
final关键字
查看全部 -
方法的重写
查看全部 -
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:
2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示:
3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:
查看全部 -
静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
new HelloWorld().score
查看全部 -
发现一个学it不错的网站 百度搜索 it猿课 网址 http://ityuanke.com 里面好像市面全部课都有查看全部
-
get方法就是一个获取属性的方法 因为对属性进行封装 外部无法调用到所以才写这个方法set就是给当前属性赋值 你可以看到他们的访问修饰符一般为public(公共的) 所以就能调用这些方法进行赋值,取值的操作
查看全部 -
程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。
查看全部 -
点击查看全部
-
多态
继承是多态实现的基础!
对象的多种形态:
引用多态:父类的引用可以指向本类的对象;
父类的引用可与指向子类的对象;
方法多态:创建本类对象时,调用的方法为本类方法;
查看全部
举报