java复用类

时间:2023-03-09 17:37:49
java复用类

  java复用类英文名叫reusing classes  ,重新使用的类,复用的意思就是重复使用的类,其实现方法就是我们平常使用的组合和继承;

  1、组合: has-a 的关系  (自我理解:组合就是我们平时新建一个类的对象,然后使用这个类的各种属性,这就是组合,组合只能够使用其方法,不能够改变方法)

  2、继承: is-a 的关系  (自我理解:继承就是一个类去继承另一个类,然后能够使用这个类中的方法和属性,而且能够重写父类中的方法,是接口)

  
  重写:(@Override)  重写是子类方法重新覆盖父类的方法,如果没有重写或者重载,那么子类调用一个子类没有的方法时,其实是调用父类。

      其中@Override注解可以防止在不想重载时而被意外重载。

      重写注意与重载的区别,重载是同一个类中,方法名相同,而方法参数不同,以此区分要调用的方法。

  toString()方法说明:调用一个对象可以给你返回一个字符串,比如System.out.println(object);(object是一个具体的对象)这一句就会调用toString()方法,然后返回

  一个字符串。

  final关键字:加上final关键字的基本类型,表示这个变量初始化后不会改变。类似c的define,你希望一个变量在这个程序里就是这个值不需要改变。就可以用final。

        static本来是静态初始化,和final一起用就是占据了一块不能改变的存储空间。

        final修饰方法时,可以继承,但是不能够修改,就是不能够重写;

        final修饰类是,这个类不能够被继承;

  main()方法说明:我们可以对每一个类都设置一个main()方法,即使一个类嵌套在另一个类中是也是可以的,这样可以使得每个类的单元测试变得更加简便易行。

  

 /**
* main()方法说明
* 2016/5/4
**/
package cn.Java_7; public class Text extends Text_1{ public static void main(String[] args) {
System.out.println("Text");
Text_1 text_1 = new Text_1();
text_1.main(args);
}
} class Text_1{
Text_1(){}
public static void main(String[] args){
System.out.println("Text_1");
}
}

    组合继承重写实例:

    

 /**
* 复用类 组合和继承
* 2016/5/4
*/
package cn.Java_7; class Father{
int age;
Father(){
this.age = 50;
System.out.println("Father class:Father.age"+this.age);
} public void get(){
System.out.println("Father.get");
} public String toString(){
return "Father.toString";
}
} //继承
class Son extends Father{
int age;
Son(){
this.age = 20;
System.out.println("Son class:Son.age"+this.age);
} @Override
public void get(){
System.out.println("Son.get");
} public String toString(){
return "Son.toString";
}
} //继承
class GrandSon extends Son{
int age;
GrandSon(int age){
this.age = age;
System.out.println("GrandSon class:GrandSon's age is "+this.age);
}
}
public class Father_Son {
public static void main(String[] args){
//组合语法
Father father = new Father();
System.out.println(father);
father.toString(); Son son = new Son();
System.out.println(son);
son.toString(); GrandSon grandson = new GrandSon(4);
System.out.println(grandson);
}
}