当前位置: 首页 > news >正文

移动终端网站建设南京江宁区住房建设局网站

移动终端网站建设,南京江宁区住房建设局网站,网页游戏排行2013,东营建设网站公司目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象类的特点 2. 接口2.1 接口的概念2.2 接口的语法2.3 接口的特点2.4 实现多个接口2.5 接口的继承 3. 接口使用案例 铁汁们好,今天我们学习抽象类和接口~ 1. 抽象类 1.1 抽象类的概念 什么是抽象类?在面向对象中,如果一…

目录

  • 1. 抽象类
    • 1.1 抽象类的概念
    • 1.2 抽象类的语法
    • 1.3 抽象类的特点
  • 2. 接口
    • 2.1 接口的概念
    • 2.2 接口的语法
    • 2.3 接口的特点
    • 2.4 实现多个接口
    • 2.5 接口的继承
  • 3. 接口使用案例

铁汁们好,今天我们学习抽象类和接口~

1. 抽象类

1.1 抽象类的概念

什么是抽象类?在面向对象中,如果一个类中的信息并不能完整地描述一个对象,这样的类就是抽象类,拿我们之前的例子:
在这里插入图片描述

Dog类和Cat类继承了Animal类,Animal中有eat方法,但是猫除了吃,还能抓老鼠,如果在Animal中加上抓老鼠的方法,那么狗继承了Animal,也就是说狗也能抓老鼠,这显然有点不现实,所以Animal并不能完整的描述一个对象,此时我们可以把它设计成抽象类,那么如何设计?

1.2 抽象类的语法

当一个类被abstract关键字修饰时,这个类就是抽象类

abstract class Animal{//...
}

注意事项:
1.抽象类中可以包含普通的方法和属性,也可以包含构造方法
2.如果一个方法被abstract修饰,表示该方法是抽象方法,抽象方法不能有具体的实现,如

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

1.3 抽象类的特点

抽象类有以下特点:

  1. 抽象类不能实例化:不能通过new来进行实例化
Animal animal = new Animal();
//错误的,抽象类不能实例化
  1. 抽象类中的抽象方法不能是private修饰的

  2. 抽象类中的抽象方法不能有具体实现,是因为抽象类的作用主要是被继承,子类需要重写抽象类中的抽象方法

abstract class Animal{public abstract void func(){}//错误的,花括号就表示这个方法有具体实现
}
  1. 抽象方法不能是final和static修饰的(因为要被子类重写)
  2. 抽象类中可以没有抽象方法,但是抽象方法一定是在抽象类当中才能出现

2. 接口

2.1 接口的概念

接口是啥?在java中,可以认为是很多个类的公共规范,接口是一种引用数据类型.比如USB接口,安卓充电器接口,这些接口都是统一大小的,只要符合规范,大家都能使用它.

2.2 接口的语法

在java中,接口的定义和类的定义格式比较类似,将class替换成interface关键字即可

public interface 接口名{
//....
}

2.3 接口的特点

  1. 接口也不能实例化
  2. 接口中的方法都是抽象方法,是被public abstract修饰的,不能被其他修饰符修饰
  3. 接口中的方法不能有具体实现,只有加了default或者static的方法才能实现
    例如:
interface IA {static void fun1() {System.out.println("static");}default void fun2() {System.out.println("default");}
}
  1. 接口中的成员变量默认是public static final修饰的,所以必须赋初始值
  2. 接口中的方法和变量一般不加修饰符,这样代码更加美观,清晰
interface IA {int A = 10;void func();
}
  1. 接口中不能出现静态代码块/构造方法/实例代码块
  2. 重写接口中的方法时,重写的方法只能是public的
  3. 当一个类需要实现某个接口时,使用implements关键字,而且这个类必须重写接口的方法
interface IA {int A = 10;void func();
}
class A implements IA{@Overridepublic void func() {}
}

2.4 实现多个接口

java中不能有多继承(一个类继承多个类),但是一个类可以实现多个接口,接口很好的解决了java不能多继承这个问题

interface IA {//...
}interface IB {//...
}class A implements IA, IB {//...
}

2.5 接口的继承

接口之间也可以继承,接口之间的继承同样使用extends

interface IA {//...
}interface IB extends IA {//...
}

3. 接口使用案例

父类Animal(抽象类)

public abstract class Animal {protected String name;protected int age;public Animal(String name, int age) {this.age = age;this.name = name;}
}

IFly接口

public interface IFly {void Flying();
}

IRunning接口

public interface IRunning {void Running();
}

子类(实现了IFly, IRunning接口,并且重写了接口中的方法)

public class Duck extends Animal implements IFly, IRunning {public Duck(String name, int age) {super(name, age);}@Overridepublic void Flying() {System.out.println(this.name + "正在飞");}@Overridepublic void Running() {System.out.println(this.name + "正在跑");}
}
http://www.yayakq.cn/news/671232/

相关文章:

  • 海曙网站制作华为物联网开发平台
  • 中企动力官方网站seo公司重庆
  • h5网站开发软件有哪些山东工艺美术学院网站建设公司
  • 一个商城网站开发周期视频互动网站建设
  • 安微省城城乡建设厅网站长沙一站式网站建设
  • 下载中国建设银行官网站众志seo
  • 沧州网站建设联系电话移动互联网开发技术学什么
  • 网站遭到攻击cms做视频网站
  • 做网站难么个人怎么做音乐网站
  • 局域网小网站网站建设软件做代售机票网站程序
  • 外包网站公司优化大师兑换码
  • 杭州哪家做网站好哈尔滨公司做网站
  • 网站推广营销收费深圳网站建设微赢天下
  • 新民企业自助建站口碑好的网页设计服务
  • 网站域名怎么快速备案价格工业设计软件有哪些软件
  • 网站开发pc端和手机端网址类网站怎么做
  • 2018年怎样做淘宝客网站服装行业网站开发
  • 上海远程教育网站设计与开发公司自己做网站用软件
  • 将网站做成logo怎么做广州做网站建设的公司哪家好
  • 做外贸生意是不是需要建网站最近三天的新闻热点
  • 物联网网站开发青岛建设集团招聘信息网站
  • 曲靖网站建设网站安全认证去哪做
  • 上海网站建设公司推php的网站数据库如何上传
  • 广州网站定制wordpress dplayer解析
  • 电子商务网站建设实训报告范文建设的访问网站需要密码
  • wordpress主程序百度seo多少钱一个月
  • 网络公司除了建网站购买网站服务如何做支出
  • 学校网站功能描述西地那非片的功效与作用
  • 贵阳有哪家做网站建设好点的网站名称需要备案吗
  • 河南建筑公司网站安徽省工程造价信息网