第五章 继承

2018-05-05  本文已影响0人  tyqwas

1. 类、超类、子类

1.1 定义子类


1.2 覆盖(override)方法


1.3 子类构造器


1.4 继承层次


1.5 多态


1.6 理解方法调用


1.7 阻止继承:final类和方法


1.8 强制类型转换


1.9抽象类

public abstract class Person
{
    ...
    public abstract String getDescription();
}
如:
    new Person("VInce");

但是可以创建一个具体子类的对象

如:
   Person p = new Student("Vince","Economics");

注意:可以定义一个抽象类的变量,当时只能引用非抽象子类的对象


受保护访问


2. Object:所有类的超类

    public class Employee extends Objcet
    Objcet obj = new Employee("Hacker",35000);

2.1 equals方法

    String str1=new String("apple");
    String str2=new String("apple");
    System.out.println(str1.equals(str2)); //true 
    String str1=new String("apple");
    String str2=new String("apple");
    System.out.println(str1.equals(str2));  //true
    System.out.println(str1 == str2);       //false

在检测中,只有两个对象属于同一个类时,才有可能相等。


2.2 相等测试与继承

    if(!(otherObjcet instanceof Employee)){
        return flase;
    }

2.3 hashcode方法


2.4 toString方法

public String toString()
{
    return "className[.......]";   
}
或者
... toString()
{
    return getClass().getName()+"[......]"
}

3. 泛型数组列表

    ArrayList<Employee> staff = new ArrayList<>();
    staff.add(new A("abc",...));
    staff.add(new A("cdf",...));

3.1访问数组列表元素

    staff.set(i,harry);
    等价于
    a[i] = harry;
    get方法同理
    Employee e = (Employee) staff.get(i);

4 对象包装器与自动装箱

    ArrayList<Integer> list = new ArrayList<>();

当调用list.add(3)时会自动变换成list.add(Integer.valueOf(3));

这种变换就叫做自动装箱(autoboxing)

当调用list.get(i)时会变换成list.get(i).intValue()

未完待补充

上一篇下一篇

猜你喜欢

热点阅读