Java基础面试——抽象类、接口、多态、继承

1.抽象类、接口

1.抽象类

  • 1.抽象类使用abstract修饰,它和常规类一样具有数据域、方法的构造方法,但不可以new实例;
  • 2.抽象类中不一定有”抽象方法“,”抽象方法“必须在”抽象类‘中;
  • 3.“非抽象类”在继承“抽象类”时,必须覆盖/实现所有的“抽象方法”,否则会违反规则2;
  • 4.abstract与final无法联合使用,否则子类无法继承;
  • 5.抽象类的子类可以是抽象类,这就不必实现所有抽像方法;
1.动物类(抽象类)
abstract class Animal{
   
    private String name;

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

    8.抽象类中不一定有抽象方法,抽象方法必须在抽象类中
    父类中的抽象方法必须被子类覆盖,否则子类就会继承抽象方法,导致报错
    public abstract void doSome();抽象方法!
    public abstract void eatSome();抽象方法

    4.abstractfinal无法联合使用
    错误:java: 非法的修饰符组合: abstractfinal
    public final abstract void doSome();抽象方法!
}

2.猫(非抽象类)
class Cat extends Animal{
   

    8.抽象类中不一定有抽象方法,抽象方法必须在抽象类中
    父类中的抽象方法必须被子类覆盖,否则子类就会继承抽象方法,导致报错
    注释掉doSome()后会报如下错误
    java: Cat不是抽象的, 并且未覆盖Animal中的抽象方法doSome()
    //public void doSome(){
   
    //    System.out.println("猫走猫步");
   // }

    @Override
    public void eatSome() {
   
        System.out.println(super.getName()+"猫吃老鼠");
    }

    public Cat() {
   
    }
    调用父类的构造方法
    public Cat(String name){
   
        super.setName(name);
    }
}

2.接口

  • 1.接口使用关键字interface定义,接口只包含可见性为public的常量、抽象方法等,不包含变量和具体方法;
  • 2.不可以new创建实例;
  • 3.接口方法不能有方法体;
  • 4.一个非抽象的类在实现接口时,必须将接口中所有方法加以实现;
  • 5.一个类可以实现多个接口;
  • 6.extends和implements可以共存,extends在前,imp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值