Java学习打卡第三天——[继承,finial关键字,static关键字的简介和使用]

Javaee之【继承】

Javaee之【finial关键字】

Javaee之【static关键字】

继承

继承简介: 继承是类使用的集中体现,

例如:有一个学生类,教师类在这种情况下可以有一个人类,把学生类和教师类继承人类,把学生类和教师类都有的属性放到Person类里面,这样就可以节省许多的代码编写,

再如:有猫,狗,等等一些动物可以写一个动物类,让这些动物来继承这个动物类实现继承

子类继承父类子类可有有自己的方法

继承使用的关键字extends

使用示例01:
新手机类继承了手机类,它具有了手机类的功能;
手机类(被继承)成为父类,新手机类(主动继承)成为子类

手机类

public class Phone {
    public void call(String name){
        System.out.println("给"+name+"打电话");
    }
}

新手机

public class NewPhone extends Phone{
    //方法重写,,和父类拥有相同功能,但是又有自己独有的功能用到了方法重写
    //和父类有一样的方法名实现方法重写

    @Override//帮助检验方法重写的时候是否出错
    public void call(String name){
        System.out.println("打开视频通话");
//        System.out.println("给"+name+"打电话");
        super.call(name);
    }
}

测试类

public class PhoneDemo {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.call("张飞");
        System.out.println("-----------------");
        NewPhone np = new NewPhone();
        np.call("张飞");
    }
}

使用示例02:
学生类和老师类继承人类
人类:

public class Person {
    private String name;
    private String age;

    public Person() {
    }

    public Person(String name, String age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

学生类:

public class Student extends Person{
    public Student() {
    }

    public Student(String name, String age) {
        //使用父类的方法定义姓名和年龄
        super(name, age);
    }
    public void study(){
        System.out.println("好好学习天天向上");
    }
}

教师类:

public class Teacher extends Person{


    public Teacher() {
    }
    public Teacher(String name, String age) {
        super(name, age);
    }

    public void teach(){
        System.out.println("用爱教会每一位学生");
    }
}

测试类:

public class PersonDemo {
    public static void main(String[] args) {
        Teacher tea1 = new Teacher();
        tea1.setName("林青霞");
        tea1.setAge("23");
        System.out.println(tea1.getName()+","+tea1.getAge());
        tea1.teach();

        Teacher tea2 = new Teacher("风清扬","20");
        System.out.println(tea2.getName()+","+tea2.getAge());
        tea2.teach();

        Student stu1 = new Student();
        stu1.setName("李华");
        stu1.setAge("22");
        System.out.println(stu1.getName()+","+stu1.getAge());
        stu1.study();

        Student stu2 = new Student("黎明","22");
        System.out.println(stu2.getName()+","+stu2.getAge());
        stu2.study();
    }
}

finial关键字

finial使用: 被finial修饰的方法也不能再被重写 finial使用示例01:

父类:

public class Fu {
    /*public final void method(){
        System.out.println("父类method方法被调用");
    }*/
    public  void method() {
        System.out.println("父类method方法被调用");
    }
}

子类:

public class Zi extends Fu{
    private  int age=23;

    public int getAge() {
        return age;
    }

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

    @Override
    public final void method(){
        //被final修饰的不能被再次重写或者赋值
//        age = 23;
        System.out.println("子类method被调用");
    }
}

测试类:

public class Demo {
    public static void main(String[] args) {
        Zi z = new Zi();
        z.method();
        z.setAge(12);
        System.out.println(z.getAge());
    }
}

static关键字

被static修饰的变量可以看成是一个常量,不能被改变

例如:
在记录一个学校学生的时候,学生的姓名,性别,年龄,学号不同但是学校是相同的,所以将这个变量用静态修饰之后,只需要赋值一次即可,以后都是一样的;
另外:
静态方法只能访问静态方法
静态方法只能访问静态成员变量
使用示例:
Student类:

public class Student {
    public String name;
    public String age;

    //static修饰的变量表示不会改变的量
    public static String university;

    public void show(){
        System.out.println(name+","+age+","+university);
    }

    public void show1(){
    }
    public static void show2(){
    }
    public void show3(){
        show1();
        show2();
    }
    //------------------------------
    //静态方法只能访问静态方法
    //静态方法只能访问静态成员变量
    //------------------------------
    public static void show4(){
        show2();
    }
}

测试类:

public class StaticDemo {
    public static void main(String[] args) {

        //静态常量直接赋值
        Student.university = "计算机大学";
        Student s1= new Student();
        s1.name = "林青霞";
        s1.age = "23";
        s1.show();

        Student s2 =new Student();
        s2.name = "风清扬";
        s2.age = "23";
        s2.show();
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮皮皮皮皮皮卡乒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值