ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第一组 孙乃宇 7.26 抽象类和接口

2022-07-26 20:03:54  阅读:145  来源: 互联网

标签:继承 方法 7.26 接口 抽象 抽象类 孙乃宇 public


抽象类和接口

抽象

抽象类的基本概念

普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里面增加抽象方法的组成部分。

抽象方法,没有方法体。

抽象方法,存在的意义是什么?

根本意义,约定。自定义的规则 约定大于配置,配置大于编码

抽象方法到底约定了什么,定了哪些规则。

约定了返回值,约定了访问权限,参数列表,需要在重写的时候定义方法体

面向对象特征:抽象

抽象方法必须在一个抽象类中,加一个abstract

public abstract class Animal {}
  1. 当我们定义了一个抽象类,这个抽象类中可以有那些结构

    属性 成员方法 构造器 抽象方法 常量

  2. 抽象类中能不能没有抽象方法?

    抽象类可以没有抽象方法

  3. 抽象类是不能被实例化

    抽象类不能创建对象

  4. 抽象类的构造器存在的意义

    为了约定子类的构造器必须和父类匹配

  5. 一个类如果继承了一个抽象类,就必须重写抽象类的所有的抽象方法

    //定义一个抽象类
    public abstract class Animal{
       public abstract void eat();//定义一个抽象方法
    }
    //定义一个类来继承抽象方法
    public class Cat  extends Abstr01{
       @Override
       public void show() {
           system.out.println("猫吃鱼");
      }
    }
    //继承抽象类要重写抽象类中所有的方法,不然这个类也要声明为抽象类。

    abstract能够修饰什么?

类,方法。

抽象方法能不能用private修饰?不能,开发中抽象方法基本上都是public

抽象方法能不能用final修饰?不能,用final修饰的方法是不允许重写的

抽象类能不能用final修饰?不能,用final修饰的类是不允许被继承的。

总结:

  1. 抽象方法必须是public或者是protected因为如果是private,不饿能被子类继承

    子类便无法实现方法,默认情况下是可以的。默认情况是public

  2. 抽象类是不能被直接实例化,需要靠子类采用向上转型的方法处理。

  3. 抽象类必须有子类,使用extends继承,一个类只能继承一个抽象类

  4. 子类(如果不是抽象类)则必须重写抽象类中的所有方法

    (如果子类没有实现父类的抽象方法)必须将子类也定义为abstract类

接口

java中,除了类,还有抽象类和接口

比抽象类更高级的抽象

抽象类也是比类更高级的抽象

接口的声明:使用interface关键字,public interface ch02

接口中只能定义抽象方法,不能有属性,不能有方法,

可以放静态常量,静态方法

JDK8及以后,接口中也是只能定义抽象方法,不能有属性,可以有默认的方法和静态方法

接口中结构的特点

接口中的方法默认为public abstract 我们推荐就省略了,

接口中的常量默认是 public static final ,我们推荐就省略了

说一句话,接口中的结构必须是public

接口可以被实现,实现类

比如说A类 implements 接口,那么我们就说A是这个接口的实现类

如果一个类实现了一个接口,他就需要重写接口中的所用方法。

实现接口时可以多实现的,继承只能是单继承的

开发中,如果一件事情可以通过继承和实现接口来解决,优先使用接口解决。

案例

//定义了一个接口
public interface Inter01 {
   void eat();//定义了一个方法
}
//定义一个类来实现接口,使用implements关键字
public class Inter01Impl implements Inter01 {
   @Override
   public void eat() {//实现类中重写接口中定义的方法
  }
}
//创建测试类
public class Demo{
   public static void main(String [] args){
       Inter01 inter01=new Inter01Impl();//创建对象
       inter01.eat();//调用对象
  }
}

 

面试题:

1.继承抽象类和实现接口的异同。

2.抽象类和接口的区别。

接口存在的意义?

约定:

多态的前提:

1.继承

2.重写方法

3.父类-->子类,接口-->实现类

面试题:

在java中只有单继承?不对 *接口之间是多继承的

java类与类之间只有单继承

public interface A extends B,C,D{}

总结

    1. 抽象abstract关键字

  • 抽象类的特点

  • abstract能修饰那些结构

  • 抽象方法的特点

    1. 接口:JDK7-->JDK8有什么改变

    1. 面试题:继承类和实现接口的异同?抽象类和接口的区别

    1. 多态的补充说明:

    1. 匿名实现类

  • 重点:结合多态,主要是传参,配合instanceof使用

  • 在能够使用多态表示对象的时候,尽量使用多态。

  • 栈和队列

  • 建立在两个最基础的数据结构的基础上构建的两个受限制的线性表。

  • 面向对象四大特征:

  • 封装,继承,多态,(抽象)

###

 

标签:继承,方法,7.26,接口,抽象,抽象类,孙乃宇,public
来源: https://www.cnblogs.com/sunnaiyu/p/16522454.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有