Java-继承-(修饰符)

继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及 追加属性和方法 。

文章目录


前言

        继承的概念 :

继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及 追加属性和方法 。

        继承带来的好处 :

继承可以让类与类之间产生关系,子父类关系,产生子父类后,子类则可以使用父类中非私有的成员。 


提示:以下是本篇文章正文内容,下面案例可供参考

一、修饰符是什么?

package(了解): 

        1、包的概念 包就是文件夹,用来管理类文件的 

        2、包的定义格式 package 包名; (多级包用.分开) 例如:package com.heima.demo; 

        3、带包编译&带包运行 带包编译:javac –d . 类名.java 例如:javac -d .                 com.heima.demo.HelloWorld.java 带包运行:java 包名+类名 

例如:java com.heima.demo.HelloWorld 

二、使用步骤

1.重写使用

        下面新建三个类,分别是一个父类;两个子类。

父类代码如下(示例):

package com.xxgc.ch02_2.po;
//人类
public class Person {
    //静态常量:值不可被改变
    //静态使用情况:便于访问,数据共享。
    public final String schoolName="济南信息工程学校";
    private String name;
    private int age;
    //无参构造
    public Person()
    {

    }
    //有参构造
    public Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    //吃饭
    protected void eat() {
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

        下面建两个子类,分别是Student类(学生类);Teacher类(老师类)。

学生类代码如下:

package com.xxgc.ch02_2.po;

public class Student extends Person{
    public Student()
    {

    }
    public Student(String name,int age)
    {
        super(name,age);
    }
    //重写父类的方法,方法名一样,参数列表也必须一样
    public void eat()
    {
        System.out.println("学生吃肉");
    }
    public void study()
    {
        System.out.println(super.getName()+"学习");
    }
}

        下面我们建老师类

        代码如下:

package com.xxgc.ch02_2.po;
//老师类
public class Teacher extends Person{
    public Teacher()
    {

    }
    public Teacher(String name,int age)
    {
        super(name,age);
    }
    public void eat()
    {
        System.out.println("老师吃烤鱼");
    }
    public void teach()
    {
        System.out.println(super.getName()+"教课");
    }
}

        重写:

        不知道大家有没有发现上面三个类中,子类继承父类。但是有一个方法eat()却在三个类中都有,且命名也一样。这就是(重写)。

        虽然子类继承了父类,但是如果有相同的方法,使用子类调用的话。默认调用的是子类的方法,此处举例说明:“假如说你有手机,你还会去借用别人的手机吗?”。

        新建一个测试类,来判断上述是否有误。

        测试类代码如下:

package com.xxgc.ch02_2.test;

import com.xxgc.ch02_2.po.Student;
import com.xxgc.ch02_2.po.Teacher;

public class PersonDemo {
    public static void main(String[] args) {
        //打印学校名称
        Student stu=new Student();
        stu.setName("扶苏");
        stu.eat();
        String school= stu.schoolName;
        System.out.println(school);
        Teacher t=new Teacher();
        t.eat();

    }
}

      通过上面的测试类,经过运行代码。调用重写方法eat()方法,分别调用两个子类的eat()方法运行结果如下

        运行结果证明上述说法无误,在子类中如果有重写方法,在子类中调用,调用的是子类本身的方法,而不是调用的父类。 

2.import(理解)

import(理解):

导包的意义 使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦了 为了简化带包的操作,Java就提供了导包的功能 导包的格式 

格式:import 包名; 

范例:import java.util.Scanner; 

示例代码(没有使用导包,创建的Scanner对象)         

package com.heima; import java.util.Scanner; public class Demo { 
    public static void main(String[] args) { 
// 1. 没有导包,创建Scnaner对象
     Scanner sc = new Scanner(System.in); 
    } 
}

       1. fifinal(应用)

           fifianl关键字的作用 

  •         fifinal代表最终的意思,可以修饰成员方法,成员变量,类 
  •         fifinal修饰类、方法、变量的效果 
  •         fifianl修饰类:该类不能被继承(不能有子类,但是可以有父类) 
  •         fifinal修饰方法:该方法不能被重写 
  •         fifinal修饰变量:表明该变量是一个常量,不能再次赋值 

        2.fifinal修饰局部变量(理解)     

fifianl修饰基本数据类型变量 :

  •         fifinal 修饰指的是基本类型的数据值不能发生改变 
  •         fifinal修饰引用数据类型变量 
  •         ifinal 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的 

举例: 

public static void main(String[] args){
     final Student s = new Student(23); 
     s = new Student(24); 
    // 错误 s.setAge(24); // 正确 
}

        3.static(应用):   

  • static的概念 
  • static关键字是静态的意思,可以修饰【成员方法】,【成员变量】 
  • static修饰的特点 
  • 1. 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件 
  • 2. 可以通过类名调用当然,也可以通过对象名调用【推荐使用类名调用】 

        代码如下:

class Student {
     public String name; //姓名
     public int age; //年龄 
    public static String university; //学校 共享数据!所以设计为静态!
   public void show() { 
        System.out.println(name + "," + age + "," + university); } 
    }
    public class StaticDemo {
     public static void main(String[] args) { 
    // 为对象的共享数据赋值 
    Student.university = "传智大学"; 
    Student s1 = new Student();
     s1.name = "林青霞"; 
    s1.age = 30;
     s1.show(); 
    Student s2 = new Student();
     s2.name = "风清扬"; 
    s2.age = 33; s2.show(); 
    } 
}

        4.static访问特点(掌握)

  • static的访问特点 
  • 非静态的成员方法 
  • 能访问静态的成员变量 
  • 能访问非静态的成员变量 
  • 能访问静态的成员方法 
  • 能访问非静态的成员方法 
  • 静态的成员方法 
  • 能访问静态的成员变量 
  • 能访问静态的成员方法 
  • 总结成一句话就是: 
  • 静态成员方法只能访问静态成员 

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了Java修饰符使用,而Java提供了大量能使我们快速便捷地方法。

猜你喜欢

转载自blog.csdn.net/qq_68384595/article/details/126954014