java入门基础 进阶篇————面向对象中的继承

本文将通过案例、文字详细介绍 面向对象的三大特性 继承 多态 封装
若有细瑕 感谢指正!

今天介绍的是 面向对象三大特性中的————继承

1、什么是继承?
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类实例域和方法
子类从父类继承方法,使子类具有父类相同的行为

类的单继承格式 extends 继承

class 父类名 { 方法体

class 子类名 extends 父类名 { 方法体

2、继承的分为单继承 和多重继承
java入门基础 进阶篇————面向对象中的继承
3、继承的特性
3.1、子类拥有父类 非 private(私人的)的属性方法
3.2、子类可以拥有自己的属性方法,即子类可以对父类进行扩展
3.3、子类可以用自己的方式实现父类的方法

4、从案例代码来说明
4.1、子类猫和父类宠物之间的关系
class Pet{ //父类的属性 宠物
public void jump(){
System.out.print(“宠物会跳”);
}
}
class Cat extends Pet{ // extends 继承
子类 继承 父类所有属性
public void CatchMouse(){ //自加增加了 新属性 抓老鼠
}
// @overrwrite //注释说明
public void jump(){ // 对继承父类的属性进行了自我特征的详细说明
System.out.print(“猫会跳,而且速度很快!”);
}
}
class Test{
public static void main(String []args){
Pet tom=new Cat (); // 引用了父类 创建了新的对象 Cat
tom.jump(); //说明了猫的名字 tom的jump跳属性 并进行了详细说明
}
}
4.2、子类=Leishen(雷神)和父类Hero(英雄)之间的关系
class Hero { //父类
public void Manwei() { //创建一个对象
System.out.println(“漫威里有很多英雄”);
}
}
class Leishen extends Hero{ //继承了父类
public void Manwei(){
System.out.println(“我继承了父类Hero,我漫威里的雷神老王”);
} //方法体对属性Manwei进行了深度 延伸
}
public class Duixiang {
public static void main(String[] args) { //主方法
Hero a = new Hero();//创建对象 Hero
a.Manwei(); //输出自己的方法体
Hero b = new Leishen();//创建一个新的对象 Leishen
b.Manwei(); //输出自己的方法体
}
}
4.3、总结
子类会继承父类的一个属性,
子类可以建立自己的新属性
可以建立多个子类来继承父类

5、super、this、final、implements、extends关键字
5.1、super关键字:通过super关键字可以实现对父类成员的访问,用来引用当前对象的父类
this关键字: 指向自己的引用

class Animal {
void eat() {
System.out.println(“动物吃东西”);
}
}
class Dog extends Animal {
void eat() {
System.out.println(“狗吃骨头”);
}
void eatTest() {
this.eat(); // this 调用自己的方法
super.eat(); // super 调用父类方法
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog b= new Dog();
b.eatTest();
}
}

5.2、final关键字:可用于定义类为不能继承的,即最终类,或用于修饰方法,该方法 不能被子类重写
final class 类名 {//类体}
修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}

5.3、implements关键字:使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)
案例说明

class A {
public void eat();
public void sleep();
}
class B {
public void time();
}

public class C implements A,B {
}

5.4、extends关键字:在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
class Hero {
void manwei() {
System.out.println(“漫威里有很多英雄”);
}
}
class Leishen extends Hero {
void manwei() {
System.out.println(“英雄里有雷神”);
}
}
public class Test {
public static void main(String[] args) {
Hero a = new Hero();
a.manwei();
Hero b = new Leishen();
b.manwei();
}
}