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

泛站群中山网站建设工具猫

泛站群,中山网站建设工具猫,广安建设机械网站,wordpress会员内容文章目录 前言一、重载与重写1.重载(Overload)(1)条件(2)举例 2.重写(Override)(1)规则(2)举例 3.重载和重写区别 二、抽象类与接口1.抽象类&…

文章目录

  • 前言
  • 一、重载与重写
    • 1.重载(Overload)
      • (1)条件
      • (2)举例
    • 2.重写(Override)
      • (1)规则
      • (2)举例
    • 3.重载和重写区别
  • 二、抽象类与接口
    • 1.抽象类
      • (1)特性
      • (2)作用
      • (3)举例
    • 2.接口
      • (1)语法规则
      • (2)特性
      • (3)举例
    • 3.抽象类和接口的区别
    • 4.普通类和抽象类的区别


前言

本文主要记录重写和重载、抽象类和接口的概念以及它们之间的区别。


一、重载与重写

1.重载(Overload)

由于“一词多义”,相同的词语有不同的意思,可以说该词语被重载了,同样Java中的方法也是可以重载的。
在Java中,如果多个方法的名字相同,参数列表不同,则称该方法被重载了。

(1)条件

a.方法名必须相同。
b.参数列表必须不同(参数的个数、参数的类型、参数的次序必须不同)
c.与返回值类型是否相同无关。

(2)举例

方法间的重载:

public static int add(int x, int y) {return x + y;}public static int add(int x, int y, int z) {return x + y + z;}public static double add(double x, double y) {return x + y;}

构造方法间的重载:

class Test {public Test() {System.out.println("我是无参构造方法!");}public Test(int a) {System.out.println("我是有一个参数的构造方法!");}public Test(int a, int b) {System.out.println("我是有两个参数的构造方法!");}
}

2.重写(Override)

重写也称为覆盖,重写是子类对父类(非静态、非private修饰、非final修饰、非构造方法等)的方法进行重新编写,返回值和形参都不能改变。
优点:子类可以根据自己的需要实现父类的方法。

(1)规则

a.子类在重写父类的方法时,修饰符、返回值类型、方法名(参数列表)要完全与父类方法一致。
b.返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类
c.访问权限不能比父类中被重写的方法的访问权限更低。
d.父类被static、private修饰的方法、构造方法都不能被重写。
e.可以使用@Override注解来显示重写的方法。

(2)举例

class Animal {String name;int age;public Animal(String name, int age) {this.name = name;this.age = age;}public void fun() {System.out.println(this.name + "," + this.age + "岁,正在吃~");}
}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}@Overridepublic void fun() {System.out.println(name + "," + age + "岁,正在跑~");}}

返回值相同(但必须是父类返回值的派生类)

class Animal {String name;int age;public Animal(String name, int age) {this.name = name;this.age = age;}public Animal eat(String name,int age) {return new Animal(name, age);}
}class Dog extends Animal {public Dog(String name, int age) {super(name, age);}@Overridepublic Dog eat(String name,int age) {return new Dog(name, age);}
}

3.重载和重写区别

区别点重载(Override)重写(Override)
参数列表必须修改不能修改
返回类型可以修改不能修改
访问限定符可以修改不能做更严格的限定,但可以降低限定

方法重载是一个类的多态性表现,方法重写是子类和父类的一种多态性表现。

二、抽象类与接口

1.抽象类

如果一个类中没有包含足够的信息来描绘一个具体的对象,这就是抽象类。没有实际工作的方法,可以将其设计为一个抽象方法,包含抽象方法的类称为抽象类。
在Java中,被abstract修饰的类称为抽象类,被abstract修饰的方法称为抽象方法。

(1)特性

a.抽象类不能直接实例化对象。
b.抽象方法不能是private的。(抽象类没有加修饰限定符,默认是public)
c.抽象方法不能被final和static修饰,因为抽象方法要被子类重写。
d.抽象类必须被继承,并且继承和子类要重写父类中的抽象方法,否则子类也是抽象类。
e.抽象类中不一定包含抽象方法,但有抽象方法的类一定是抽象类。
f.抽象类中可以有构造方法,供子类创建对象时,初始化弗雷德成员变量。

(2)作用

有些任务不需父类执行,只需要子类完成,使用抽象类,可以充分利用编译器的校验。

(3)举例

Person是Student的父类,由于Person中有一个抽象方法,则Person也是抽象类,Student继承Person并重写了Person中的抽象方法。
代码如下(示例):

abstract class Person {String name;public Person(String name) {this.name = name;}public void eat() {System.out.println(name + "正在吃饭~");}public abstract void fun();
}
class Student extends Person {public Student(String name) {super(name);}@Overridepublic void fun() {System.out.println(name + "正在上课~");}
}

2.接口

手机上的耳机孔、充电孔,电脑上的USB接口等都是接口。在Java中,接口可以看作是多个类的公共规范,是一种引用数据类型。

(1)语法规则

接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口。
接口不能直接使用,必须要有一个“实现类”来“实现”该接口,实现接口中的所有抽象方法。
类与接口之间是implements实现关系。

(2)特性

a.接口类型是一种引用类型 ,但是不能直接new接口的对象。
b.接口中每一个方法都是public的抽象方法(public abstract)。
c.接口中的方法只能由实现接口的类来实现。
d.重写接口中方法时,不能使用default访问权限修饰。
e.接口中可以含有变量,但是接口中的变量会被隐士的指定为public static final变量。
g.接口中不能有静态代码块和构造方法。
h.接口虽然不是类,但是接口编译完成后字节码文件的后缀格式也是.class。
i.如果类没有实现接口中的所有的抽象方法,则类必须设置为抽象类。

(3)举例

使用implements实现接口,一个类可以实现多个接口。
代码如下(示例):

interface IShape {void draw();
}
interface IColor {void paint();
}
class Circle implements IShape,IColor {@Overridepublic void draw() {System.out.println("画圆");}@Overridepublic void paint() {System.out.println("上色");}
}
class Triangle implements IShape {@Overridepublic void draw() {System.out.println("画三角形");}
}

3.抽象类和接口的区别

区别抽象类(abstract)接口(interface)
结构组成普通类+抽象方法抽象方法+全局常量
权限各种权限public
子类使用使用extends关键字继承抽象类使用implements关键字实现接口
关系一个抽象类可以实现若干接口接口不能继承抽象类,但是接口可以使用extends继承多个父接口
子类限制一个子类只能继承一个抽象类一个子类可以实现多个接口

4.普通类和抽象类的区别

区别普通类抽象类(abstract)
使用可以被实例化不能被实例化
抽象方法不包含包含
成员变量、构造方法、普通方法有,但成员变量和方法不能声明为private、static和final
静态和非静态的成员变量和方法

抽象类是一种特殊的类,主要用于抽象出多个具有相似特性的类的共性,便于管理和设计,而普通类是最常见的类形式,可以直接被实例化主要用于创建具体的对象。

http://www.yayakq.cn/news/647235/

相关文章:

  • 网站建设合同附件格式南宁企业网站设计公
  • 定制网站建设公司wordpress聊天室插件
  • 攀枝花网站怎么做seo广西网站建设路
  • 做网站需要学什么专业兰州专业网站建设报价
  • 查询公司营业执照的网站男女在床上做羞羞的事的网站
  • 小型营销企业网站建设策划一个网站要多少钱
  • 鹤峰网站建设制作一个门户网站需要多少钱
  • 酒店手机网站首页设计太原顶呱呱做网站地址电话
  • 容易被百度收录的网站金华网站建设公司哪家好
  • 常德网站优化公司做游戏网站的目地
  • 惠州市+网站开发公司江浦企业管理咨询服务有限公司
  • 怎么建个废品网站西安免费网站建站模板
  • 莱州网站建设价格百度站内搜索
  • 昌吉北京网站建设爱站网怎么打不开
  • 怎么做可以看外国视频网站杭州网站建设哪个好
  • 南昌旅游集团网站建设品牌建设规划方案
  • 那个网站可以做考卷那个网站的域名便宜
  • 网站备案时间wordpress表格边框
  • 中小企业网站建设价格如何用手机建网站
  • 怎样建设一个韩国网站wordpress外贸数码
  • 台山网站设计群晖 nas wordpress
  • 青海网站开发 建设小程序推广是干什么的
  • 广东网站建设报价官网dedecms 网站根目录
  • 安徽网站建设网站运营怎样做网络推广优选豪升网络好
  • 网站模板演示怎么做wordpress提交友情链接
  • 最新的网站开发技术网站建设的功能描述
  • 龙口网站建设联系电话WordPress添加ftp
  • 高端大气的网站首页深圳市城市建设管理局
  • 网站分辨率做96是否会更好怎么给一个花店做网站建设
  • 做商城网站需要什么条件营销计划的主要内容