首页 > 程序开发 > 软件开发 > Java >

Java基础知识陷阱(八)

2014-12-16

这次我来说说关于&跟&&的区别,大家都知道&是位运算符,而&&是逻辑运算符,看下面代码:public static void main(String[] args) throws Exception { int a = 1; int b = 2; int c =

这次我来说说关于&跟&&的区别,大家都知道&是位运算符,而&&是逻辑运算符,看下面代码:
public static void main(String[] args) throws Exception {
int a = 1;
int b = 2;
int c = a & b;
if(a >= 1 && b >= 1){
System.out.println("&&条件1");
}
if(a >= 2 && (b = 3) >= 3){
System.out.println("&&条件2");
}
System.out.println(b);
System.out.println(c);
}
那么输出:
&&条件1
可以看出,第二个条件判断时&&进行了短路不会执行b = 3;操作。那如果把&&换成&的呢,如何,看代码:
public static void main(String[] args) throws Exception {
int a = 1;
int b = 2;
int c = a & b;
if(a >= 1 && b >= 1){
System.out.println("&&条件1");
}
if(a >= 2 && (b = 3) >= 3){
System.out.println("&&条件2");
}
System.out.println(b);
if(a >= 2 & (b = 3) >= 3){
System.out.println("&&条件3");
}
System.out.println(b);
System.out.println(c);
}
看输出:
&&条件1
这个&符号不会产生短路功能还会进行下面的判断。
多态这个对于程序员来说是非常熟悉的了,熟悉归熟悉我还是来说说,网上也好多了,首先多态应该是一个运行时的行为,这个特别重要!网上好多地方说了重写与重载都是多态行为。但是也有些地方以及博客都会说明不要把重载理解为是多态!!
class Parent{
public void doing(){
System.out.println("Parent --> do");
}
}
class Child extends Parent {
@Override
public void doing(){
System.out.println("Child --> do");
}
public void run(){
System.out.println("Child --> run");
}
}
看调用代码:
public static void main(String[] args) throws Exception {
Parent p = new Child();
p.doing();
p.run();
}
p.doing();这个是可以准确调用的,然而p.run()是编译错误,因为在父类Parent中未定义其方法,如果需要调用则需要定义为Child。
1
Child p = new Child();
相关文章
最新文章
热点推荐