Osheep

时光不回头,当下最重要。

Java面向对象编程的四大特征(2)-继承

最近工作有点忙,虽然也抽空来学习,但是好久没写博客了,始终很想写个Java SE 和 Java EE 完整版的知识分享,今天难得有空,多谢几篇

1.继承–为什么有?

继承可以解决代码复用,让我们的编程更加靠近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends语句来声明继承父类:

语法:class 子类 extends 父类

这样,子类就会自动拥有父类定义的某些属性和方法,举例如下

继承举例[Demo117.java]

package com.abc;//包名
public class Demo117 {
    public static void main(String[] args) {
        Pupil p1=new Pupil();
        p1.printName();
    }
}

//将学生的共有属性提取,做一个父类
class Stu{
    //定义成员属性
    protected int age;
    public String name;
    public float fee;
    private String job;//私有将不被继承
    
    //编程中,如果你不希望子类继承某个属性或方法
    //则将其声明为private即可
    public void printName(){
        System.out.println("名字"+this.name);
    }
}

//小学生类
class Pupil extends Stu{
    //交学费
    public void pay(float fee){
        this.fee=fee;
    }
}
//幼儿
class Pre extends Pupil{
    //交学费
    public void pay(float fee){
        this.fee=fee*1.5f;
    }
}
//中学生类
class MiddleStu extends Stu{
    //交学费
    public void pay(float fee){
        this.fee=fee*0.8f;
    }
}
//大学生类
class ColStu extends Stu{
    //交学费
    public void pay(float fee){
        this.fee=fee*0.1f;
    }
}

2.继承–深入讨论


1、父类的哪些属性(变量)、方法被子类继承了?

父类的public修饰符的属性和方法;protected修饰符的属性和方法;默认修饰符属性和方法被子类继承了,父类的private修饰符的属性和方法不能被子类继承。

2、继承–注意事项

1、子类最多只能继承一个父类(指直接继承)
2、java所有类都是Object类的子类 (所有的子类都可以逐级继承,例:爷->父->子->孙)
3、JDK6中有202个包3777个类、接口、异常、枚举、注释和错误
4、在做开发的时候,强烈建议大家多查jdk帮助文档
5、在使用类时,实在不知道怎么办,多使用搜索引擎

点赞