Java基础回顾_深入OOP常见错误精髓

来源:互联网 发布:巨人网络小怪兽工作室 编辑:程序博客网 时间:2024/06/06 18:19
package java基础错误;//错误一abstract class Name {private String name;//public abstract boolean isStupidName(String name){}//申明抽象的方法不能实现,必须通过继承才能实现public abstract boolean isStupidName(String name);}

package java基础错误;//错误二public class Something{void doSomething(){//private String str = "";//方法内只能使用终态(不能添加修饰符)String str = "";int len = str.length();System.out.println("len = "+len);}public static void main(String[] args) {new Something().doSomething();}}

package java基础错误;abstract class Something2 {//private abstract String doSomething();//抽象的方法不能定义私有的,其它类型的都可以,因为抽象类只能通过继承实现抽象类的方法private String doSomething(){return "doSomething";}}

package java基础错误;public class Something3 {public int addOne(final int x){//return ++x;//final的值不能改变return x;}}

package java基础错误;public class Something4 {public static void main(String[] args){Other o = new Other();new Something4().addOne(o);System.out.println(o.i);}//可改变public void addOne(final Other o){o.i++;}}class Other{public int i;}

package java基础错误;public class Something5 {//final int i;//final的值必须申明时初始化final int i = 1;}

package java基础错误;public class Something6 {public static void main(String[] args){Something6 s = new Something6();System.out.println("s.doSomething() =  "+s.doSomething());//System.out.println("s.doSomething() =  "+doSomething());//静态方法中不能直接访问非静态方法,必须通过实例对象.方法}public String doSomething(){return "Do something....";}}

package java基础错误;//接口一interface Able1 {void play();}//接口二interface Able2 {void play();}//接口三继承 方法同名的两个接口,并interface Able3 extends Able1, Able2 {//任何在interface里声明的interface variable (接口变量, 也可称成员变量),默认为public static final。//实际上下面这句为 public static final 多接口方法重名 ball = new 多接口方法重名("PingPang");唯一,不可继承多接口方法重名 ball = new 多接口方法重名("AAAAA");}//该类实现了接口三public class 多接口方法重名 implements Able3 {private String name;public String getName() {return name;}public 多接口方法重名(String name) {this.name = name; }public void play() {//ball = new 多接口方法重名("BBBBB");//这句报错了,因为接口上定义的都为public static final的变量,不可更改!System.out.println(ball.getName());}public static void main(String[] args) {/* * 不管这里怎么写,调用的这个方法结果都是接口创建的参数AAAAA */Able3 a = new 多接口方法重名("CCCCC");a.play();//输出结果为:AAAAA多接口方法重名 d = new 多接口方法重名("CCCCC");d.play();//输出结果为:AAAAA}}

package java基础错误;interface ATest{int x = 1;//接口的属性默认隐含为 public static final}class BTest{int x = 2;}public class 继承与接口实现问题 extends BTest implements ATest {public void pX(){System.out.println("当父类与接口的属性同名时,使用接口名.属性名进行访问: "+ATest.x);System.out.println("当父类与接口的属性同名时,使用super.属性名进行访问: "+super.x);}public static void main(String[] args) {new 继承与接口实现问题().pX();}} 

package java基础错误;class JieKo{protected int method1(int a, int b){return 0;}}public class 类继承Protected接口 extends JieKo{/* * 这个是重写父类的方法(可以)public int method1(int a, int b){return 0;}*//* * 子类要重写父类的方法不能比父类更低的访问权限private int method1(int a, int b){return 0;}*//* * 方法重载 方法一样,参数不同,可以自己访问(可以) private int method1(int a, long b) { return 0;  }*//* * 不知道怎么回答 *public short method1(int a, int b){return 0;}*/ /* * 不能是静态的static protected int method1(int a, int b){return 0;}*/}

package java基础错误;interface A{int x = 0;}class B{int x = 1;}class C extends B implements A{public static void main(String[] args) {//System.out.println(new C().x);//没有指明哪一个的字段名}}

package java基础错误;interface Playable{void play();}interface Rounceable{void play();}interface Rollable extends Playable, Rounceable {Ball ball = new Ball("PingPang");//ball.getName();//此处不能使用ball对象}class Ball {private String name;public Ball(String name){//构造函数this.name = name;}public String getName(){return name;}public void play(){//ball = new Ball("Football");//未实例化完整,上面只是借口实例化而已Ball ball = new Ball("Football");System.out.println(ball.getName());}}

0 0
原创粉丝点击