首页 /  技术专区  /  Java 宽屏模式 >

继承

1.  什么是继承

子类继承父类的特征和行为,使得子类具有父类的各种属性和方法。或子类从父类继承方法,使得子类具有父类相同的行为。

特点:在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。

在继承关系中。父类和子类需要满足is-a的关系。子类是父类。

表示父类和子类的术语:父类和子类、超类和子类、基类和派生类,他们表示的是同一个意思。

Java中只支持单根继承,即一个类只能有一个直接父类。

子类可以继承父类:

    继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里

    继承默认权限修饰符的属性和方法,但子类和父类必须在同一个包里

子类不可以继承父类:

    private成员、构造方法、不在同包的父类中默认修饰符修饰的成员

2.  继承语法

编写父类

class Pet {

        //公共的属性和方法

}

编写子类,继承父类

class Dog extends Pet {

        //子类特有的属性和方法

}

3.  子类访问父类成员(super关键字)

访问父类构造方法,使用super关键字,super代表父类对象。

super();    

super(name);

访问父类属性

super.name;

访问父类方法

super.print();

super只能出现在子类的方法和构造方法中

super调用构造方法时,只能是第一句

super不能访问父类的private成员

4.  继承条件下的构造方法

继承条件下构造方法的调用规则:

子类构造方法没有通过super显式调用父类的有参构造方法 ,也没通过this显式调用自身其他构造方法,系统默认调用父类的无参构造方法。

子类构造方法通过super显式调用父类的有参构造方法,执行父类相应构造方法,而不执行父类无参构造方法。

子类构造方法通过this显式调用自身的其他构造方法,在相应构造方法中应用以上两条规则。

5.  super和this的区别

image.png


6.  访问修饰符

1.png

4-1 访问修饰符总结

7.  方法重写

方法重写的规则:

■方法名相同

■参数列表相同

■返回值类型相同或者是其子类

■ 访问权限不能严于父类

■父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法

■子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)

■父类的私有方法不能被子类覆盖

■不能抛出比父类方法更多的异常

8.  方法重写和方法重载的区别

image.png

9.  Object类

Object类是所有类的父类。

public class  Pet  extends Object {

}

Object类被子类经常重写的方法

2.png

6-1 Object类被子类经常重写的方法

Object类的equals()方法

比较两个对象是否是同一个对象,是则返回true

操作符==

简单数据类型,直接比较值。如1==2

引用类型,比较两者是否为同一对象

1Object类的equals()方法与==没区别。

2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()

3Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值。

10.  抽象类

抽象类,即类无法实例化。

public abstract class Pet {                 

}

abstract也可用于方法——抽象方法

Ø  抽象方法没有方法体。

Ø  抽象方法必须在抽象类里。

Ø  抽象方法必须在子类中被实现,除非子类是抽象类。

public abstract void print();

11.  final用法

final让类无法被继承

public final class Penguin extends Pet {

      //

}

final让方法无法被重写

public final void print () {

      //

}

final让属性值无法被修改

public class Penguin {

       final String  home ="南极";// 居住地}



上一篇: 对象和封装
下一篇: 多态
头像
0/200
图片验证码