java 学习笔记 day08 final/static关键字、抽象类和接口

1.final关键字

  • final修饰类:此类不能被继承
  • List item
  • List item

final修饰变量:则变量不能被修改,是常量
final修饰方法:父类的方法被final修饰时,不能被重写

2.static关键字

2.1被static修饰的成员的特点,

  • 被类的所有对象共享
  • 可以通过类名直接访问
  • 优先于对象存在
  • 随着类的加载而加载

public class student {
    public String name;
    public  int age;
    public static String graduateFrom;
    public void show(){
        System.out.println(name+"--"+age+"--"+ graduateFrom);
    }
}

public class studentTest {
    public static void main(String[] args) {
        student.graduateFrom="宽客塔";
        student s= new student();
        s.name="刘亦菲";
        s.age=30;
//        s.graduateFrom="宽客塔";
        s.show();

        s.name="刘小菲";
        s.age=25;
//        s.graduateFrom="宽客塔";
        s.show();
    }
}

2.2被static修饰的成员方法

  • 静态的方法只能访问【静态】的成员变量和【静态】的成员变量

静态的方法中不能出现this和super关键字。因为静态方法是随着类的加载而加载,先进入内存,this和super在对象创建时才存在。

3.抽象类

  • 抽象类的特点:
  •  A:抽象类和抽象方法必须使用abstract关键字修饰
    
  •  B:抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
    
  •  C:抽象类不能实例化
     	抽象类如何实例化呢?
     	参照多态的方式,通过子类对象实例化。
    
  •  D:抽象类的子类
     	要么重写抽象类中的所有抽象方法
     要么是抽象类
    

public abstract class Animal {
    public abstract  void eat();
}

public class Cat extends Animal {

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

public class AnimalTest {
    public static void main(String[] args) {
        Animal a= new Cat();
        a.eat();
    }

}

4. 接口

  • 定义接口使用interface关键字
  • 类和接口是实现关系,用implements关键词实现
  • 接口不能实例化,用多态来实例化
  • 接口中的变量默认就是常量
  • 接口中没有构造方法,但是默认是Object
  • 接口中的方法必须是抽象
public interface Jump {
    public abstract void jumping();
}
public class Cat implements Jump{
    @Override
    public void jumping() {
        System.out.println("cat jump");
    }
}

public class Test {
    public static void main(String[] args) {
        Jump j = new Cat();
        j.jumping();
    }
}

在这里插入图片描述

  • 类与类:
    继承关系,只能单继承,可以多层继承。

  • 类与接口:
    实现关系,可以单实现,也可以多实现。
    还可以在继承一个类的同时实现多个接口。

  • 接口与接口:
    继承关系,可以单继承,也可以多继承。

  • 抽象类和接口的区别:

  •  A:成员区别
     	抽象类:
     		成员变量:可以是变量,也可以是常量
     		构造方法:有
     		成员方法:可以是抽象方法,也可以是非抽象方法
     	接口:
     		成员变量:只能是常量
     		成员方法:只能是抽象方法
    
  •  B:关系区别
     	类与类:继承关系,只能单继承,可以多层继承
     	类与接口:实现关系,可以单实现,也可以多实现
     	接口与接口:继承关系,可以单继承,也可以多继承
     C:设计理念的区别
     	抽象类 被继承体现的是:"is a"	抽象类中定义的是继承体系的共性功能
     	接口 被实现体现的是:"like a"  接口中定义的是该体系的扩展功能
    
  •  	举例:
     		猫,动物
     		猫,跳高运动员  		
    

5.包

  • 包:其实就是文件夹。
  • 作用:就是对类进行分类管理。
  • 包的定义格式:
    package 包名;
    如果是多级包用.隔开即可
  • 注意事项:
    A:package必须是程序的第一条可执行语句
    B:package语句在一个java文件中只能有一个
  • 包的导入 用import

6.权限修饰符

  • 权限修饰符:
  •  		       本类		同一个包下(子类和无关类)	不同包下(子类)	不同包下(无关类)
      private:		Y
      默认:			Y		               Y
      protected:    Y		               Y					Y
      public:		Y		               Y					Y			Y
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值