面向对象之继承 --重点简记

面向对象之继承

特点

1.以通用类为基础类,其他类进行继承该基础类

2.java中多继承是不行的,但接口可以。

  1. 通过关键字 extends 继承
  2. 继承是将基础类中的所有属性和方法都挪到新的类中

有两个类:

class A{

}

class B{

}

//C继承A

class C extends A{

}

//不可以多继承,这是错误的。

class C extends A,B{

}

super关键字

super与this相似,this指的是当前对象,当然this也可以调用当前类的构造器,

而super指的是当前子类的父类, super();是调用对父类默认构造器。

存在于子类中,隐藏的,不用写出来,其作用是调用父类默认构造器,如果父类构造器是有参数的,那么不写super();就不能调用默认父类构造器。

可以将super(“params”);写出来 通过传递一个参数,调用相应的构造器。

final关键字

1.修饰在变量上,这个变量就不能被修改 final x=18; 则x不能再被修改

2.修饰在属性上,要么直接给初始值,要么在构造器中给初始化,但同时有多个构造器时,这些构造器都需要给final 修饰的属性进行初始化

在这里插入图片描述

3.修饰在方法上

final修饰的方法,不能被重写,与修饰在变量上一样 不能被修改。

4.修饰在类上

被final修饰的类不能被继承

抽象类

什么是抽象?

抽象就是 有相同的行为,但具体的表现不能确定。

也就是下方,Student和Worker都有抽烟这个行为,但是具体的表现不同, 一个在厕所抽烟,一个一边搬砖一边抽烟。

/**抽象类*/
abstract class Person{
    String name;
    int age;
    //抽象方法
    public abstract void  smoke();
    
}

class Student extends Person{
    //复写
    public void smoke(){
        System.out.println(this.name+"厕所偷偷在抽烟");
    }
}
class Worker extends Person{
    //复写
    public void smoke(){
        System.out.println(this.name+"一边搬砖一边抽烟");
    }
}

public class AbstractTest{
    public static void main(String[] args){
        Student s=new Student();
        s.name="张学生";
        s.smoke();
        
        Worker w=new Worker();
        w.name="李员工";
        w.smoke();

    }
}

关键字 abstract

被关键字abstract修饰的方法,就是抽象方法,。

1.抽象类可以没有抽象方法,但是含有抽象方法的类一定是抽象类,一定要加abstract

2.抽象类不能实例化,(不能创建对象),只能被继承

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读