现在的位置: 首页 > 综合 > 正文

Java子类的构造方法与多态

2013年08月19日 ⁄ 综合 ⁄ 共 1386字 ⁄ 字号 评论关闭
(1) 可以使用父类中数据域的set方法为其设置初值;

(2) 使用super()调用父类的无参构造方法或者super(parameters)调用与参数匹配的父类的构造方法,且super()或者super(parameters)必须出现在子类构造方法第一行,这是显式调用父类构造方法的唯一方式。
     public Circle(double radius,String color,boolean filled)
     {
          super(color,filled);
          this.radius = radius;
     }
(3) 如果子类的构造方法中无内容
     public classname()
     {
     }
     或者
     public classname(parameters)
     {
     }
     则相当于
     public classname()
     {
          super();
     }
     或者
     public classname(parameters)
     {
          super();
     }
(4) 调用父类的方法
     super.方法名(参数);
     
     public void printCircle()
     {
          System.out.println("The circle is created " + super.getDateCreated() + " and the radius is  " + radius);
     }
(5) 覆盖方法
     子类从父类中继承方法,如果需要修改父类中方法的实现,称为方法覆盖
     public class Circle4 extends GeomerticObject1
     {
          public String toString()
          {
               return super.toString() + "\nradius is " + radius;
          }
     }
     当且仅当方法是可访问的时候,才能被覆盖。因为私有方法在类本身以外是不能访问的,所以不能覆盖。
     静态方法也能被继承,但是不能被覆盖。
(6) 对象类object和toString()方法
     java中的每个类都源于java.lang.Object类,如果定义一个类时没有指定继承性,则这个类的父类就被默认为Object。
public class classname                                     public class classname extends Object
{                                            等价于              {
}                                                                    }
(7) 对象转换
         子类对象都可以转换成父类对象,因为子类对象的实例就是父类对象的实例
          父类对象转换为子类对象时必须强制转换
          Classname obj = (subclassname)o;
(8) instanceof 运算符 用于判断对象是否是某个类的实例
     public static void xxx(Object object)
     {
          if(object instanceof XX1)          //如果对象是XX1 的实例
          {
          }
          else if (object instanceof XX2)  //如果对象是XX2 的实例
          {
          }
     }

抱歉!评论已关闭.