1、使用继承:
1.编写父类
Class Pet {
//公共的属性和方法
}
2.编写子类,继承父类
Class Dog extends Pet {
//子类特有的属性和方法
}
Class Penguin extends Pet {
}
继承:
通过extends关键字来实现。
继承是面向对象的三大特征之一,是Java中实现代码重用的重要手段之一。Java中只支持单继 承,即每个类只能有一个父类。继承表达的是 is a 的关系,或者说是一种特殊和一般的关系。
Java中,子类可以从父类继承到哪些东西:
继承public和protected修饰的属性和方法,无论子类和父类是否在同一个包里。
继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里。
无法继承private修饰的属性和方法。
无法继承父类的构造方法。
2、子类重写父类方法:
重写方法和被重写方法必须具有相同的方法名。
重写方法和被重写方法必须具有相同的参数列表。
重写方法的返回值类型必须和被重写方法的返回值类型相同或是其子类。
重写方法不能缩小被重写方法的访问权限。
3、super:
super代表对当前对象的直接父类对象的默认引用。在子类中可以通过super关键字来访问父类的成员。
super必须出现在子类(子类的方法和构造方法)中,而不是其他位置。
可以访问父类的成员,如父类的属性,方法,构造方法。
4、继承关系中的构造方法:
如果子类的构造方法中没有通过super显示调用父类的有参构造方法,也没有通过this显示调用自身的其他构造方法,则系统会默认先调用父类的无参构造方法。在这种情况下,有没有“super();”语句,效果是一样的
如果子类的构造方法中通过super显示调用父类的有参构造方法,则将执行父类相应的构造方法,而不执行父类无参构造方法。
如果子类的构造方法中通过this显示调用自身的其他构造方法,则在相应的构造方法中应用以上两条规定。
特别注意的是,如果存在多级继承关系,则在创建一个子类对象时,以上规则会多次向更高一级父类应用,一直到执行顶级父类Object类的无参构造方法为止。
5、抽象类和抽象方法:
抽象类和抽象方法的规则:
抽象类和抽象方法都通过abstract关键字来修饰。
抽象类不能实例化。抽象类中可以没有,有一个或多个抽象方法,甚至全部方法都可以是抽象方 法。
抽象方法只有方法声明,没有方法实现。有抽象方法的类必须声明为抽象类。子类必须重写所有 的抽象方法才能实例化,否则子类还是一个抽象类
6、final修饰符:
用final修饰的类,不能再被继承。
用final修饰的方法不能被子类重写。
用final修饰的变量(包括成员变量和局部变量)将变成常量,只能赋值一次。
7、abstract:
不能和private同时修饰一个方法
不能和static同时修饰一个方法
不能和final同时修饰一个方法或类