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

java图书管理网站建设seo是什么东西

java图书管理网站建设,seo是什么东西,团购网站设计,上海自适应网站建设抽象类什么是抽象类?抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现&#…

抽象类

  1. 什么是抽象类?

抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。

  1. 如何定义抽象类?

  • 抽象类和抽象方法需要被 abstract 关键字修饰

  • 抽象类中的方法一般要求都是抽象方法,抽象方法没有方法体

举个例子:

/*** @author gf* @date 2023/2/23*/
// 1.抽象类和抽象方法需要被 abstract 关键字修饰
abstract  class Car {// 2.抽象类中的方法一般要求都是抽象方法,抽象方法没有方法体abstract void makeCar();}
  1. 抽象类存在的意义?

众所周知,抽象类不能被实例化,那么抽象类存在的意义是什么呢?

抽象类存在的一个最大意义就是被继承,当被继承后就可以利用抽象类实现多态。

先看一段代码:

/*** @author gf* @date 2023/2/23*/// 抽象类和抽象方法需要被 abstract 关键字修饰
abstract  class Car {// 抽象类中的方法一般要求都是抽象方法,抽象方法没有方法体abstract void makeCar();
}class BWM extends Car{// 重写抽象类中的draw方法@Overridevoid makeCar() {System.out.println("制造宝马");}
}
public class CatTest {public static void main(String[] args) {// 抽象类虽然不能直接实例化,但可以把一个普通类对象传给一个抽象类的引用,即父类引用指向子类对象Car bwm = new BWM();// 通过父类引用调用被子类重写的方法bwm.makeCar();}
}

运行结果:

疑问1:父类引用指向子类对象后发生了什么?

  • 关于方法:父类引用可以 调用子类和父类公用的方法(如果子类重写了父类的方法,则调用子类方法)但子类特有的方法无法调用。

  • 关于属性: 父类引用可以调用父类的属性,不可以调用子类的属性

疑问2:这样做的好处是什么?

  • 减少一些重复性的代码

  • 对象实例化的时候可以根据不同需求实例化不同的对象

  1. 抽象类实现多态

再看一段代码:

// 抽象类和抽象方法需要被 abstract 关键字修饰
abstract  class Car {// 抽象类中的方法一般要求都是抽象方法,抽象方法没有方法体abstract void makeCar();
}class BWM extends Car{// 重写抽象类中的draw方法@Overridevoid makeCar() {System.out.println("宝马:即使你把我拆得七零八落,我依然是位美人");}
}
class Tesla  extends Car{// 重写抽象类中的draw方法@Overridevoid makeCar() {System.out.println("特斯拉:我要做电车界的老大");}
}class BYD  extends Car{// 重写抽象类中的draw方法@Overridevoid makeCar() {System.out.println("比亚迪:干掉特斯拉,我们就是电车界的老大");}
}
public class CatTest {public static void main(String[] args) {// 抽象类虽然不能直接实例化,但可以把一个普通类对象传给一个抽象类的引用,即父类引用指向子类对象Car bwm = new BWM();Car tesla = new Tesla();Car byd = new BYD();// 通过父类引用调用被子类重写的方法bwm.makeCar();tesla.makeCar();byd.makeCar();}
}

运行结果:

多态的好处这里就不赘叙了

疑问:抽象类实现多态和普通类实现多态有什么区别?

抽象类的子类必须重写父类的所有方法,而普通类则不用

  1. 抽象类的特点

信到这里对抽象类也有了一个大概的认识,下面我们来简单做一下总结

  1. 使用abstract修饰的类或方法,就抽象类或者抽象方法

  1. 抽象类是不能具体的描述一个对象,不能用抽象类直接实例化对象

  1. 抽象类里面的成员变量和成员方法,都是和普通类一样的,只不过就是不能进行实例化了

  1. 当一个普通类继承这个抽象类后,那么这个普通类必须重写抽象类当中的所有的抽象方法(我们之前说过抽象类是不具体的,没有包含足够的信息来描述一个对象,所以我们需要把他补充完整)

  1. 但当一个抽象类A继承了抽象类B,这是抽象类A就可以不重写抽象类B当中的抽象方法

  1. final不能修饰抽象类和抽象方法(因为抽象类存在的最大意义就是被继承,而被final修饰的不能被继承,final和抽象,他们两个是天敌)

  1. 抽象方法不能被private修饰(抽象方法一般都是要被重写的,你被private修饰了,还怎么重写)

  1. 抽象类当中不一定有抽象方法,但如果一个类中有抽象方法,那么这个类一定是抽象类。

接口

  1. 如何定义接口

  • 接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口

  • 口当中的成员变量默认都是public static final

  • 接口当中的成员方法默认都是public abstract

例子:


public interface 接口名称{
// 定义变量,接口当中的成员变量默认都是public static final
int a = 10;    // 抽象方法
public abstract void method1(); // public abstract 是固定搭配,可以不写
void method2();  //  接口当中的成员方法默认都是public abstract, 更推荐用第二种来定义方法 
}

疑问:那么接口一般用在什么地方呢?

  • 一般情况下,实现类和它的抽象类之前具有 "is-a" 的关系,但是如果我们想达到同样的目的,但是又不存在这种关系时,使用接口。

  • 由于 Java 中单继承的特性,导致一个类只能继承一个类,但是可以实现一个或多个接口,此时可以使用接口。

  1. 通过接口实现多态

代码如下:


/*** @author gf* @date 2023/2/23*/interface  Car {void makeCar();
}class BWM implements Car{@Overridepublic void makeCar() {System.out.println("宝马:即使你把我拆得七零八落,我依然是位美人");}
}
class Tesla  implements Car{@Overridepublic void makeCar() {System.out.println("特斯拉:我要做电车界的老大");}
}class BYD  implements Car{@Overridepublic void makeCar() {System.out.println("比亚迪:干掉特斯拉,我们就是电车界的老大");}
}
public class CatTest {public static void main(String[] args) {Car bwm = new BWM();Car tesla = new Tesla();Car byd = new BYD();bwm.makeCar();tesla.makeCar();byd.makeCar();}
}

运行结果:

  1. 帮java实现多继承

由于 Java 中单继承的特性,导致一个类只能继承一个类,但是可以实现一个或多个接口,此时可以使用接口。

代码例子:

class Animal {String name;// 父类的自定义的构造方法public Animal(String name) {this.name = name;}
}
// 自定义多种接口
interface IFlying {void fly();
}
interface IRunning {void run();
}
interface ISwimming {void swimming();
}
// 小鸭子,不仅会跑,还会游泳、飞行
//一个类继承父类,并实现多个接口,间接的解决java中不能多继承的问题
class Duck extends Animal implements IRunning, ISwimming, IFlying {// 子类构造方法public Duck(String name) {super(name);// 在给实现子类的构造方法前,先要用super()调用实现父类的构造方法,比较先有父后有子呀!// 因为父类自己定义了构造方法,编译器不会自动给给子类构造方法中添加super();来实现父类的构造方法,需要我们自己实现}// 对接口中的抽象方法进行重写@Overridepublic void fly() {System.out.println(this.name + "正在用翅膀飞");}@Overridepublic void run() {System.out.println(this.name + "正在用两条腿跑");}@Overridepublic void swimming() {System.out.println(this.name + "正在漂在水上");}}public class CatTest {public static void main(String[] args) {Duck duck = new Duck("小黄鸭");  // 实例化鸭子对象duck.fly();  // 通过引用 变量名.方法名 输出重写后的方法duck.run();duck.swimming();}
}

疑问: 有人可能会说干嘛用接口,我直接在父类Animal中实现fly、run、swimming这些属性,

然后不同的动物子类再继承父类这些方法不行吗?

但问题是,鸭子会fly、swimming,那猫会飞和游泳吗?你再写个其他动物的子类是不是就不行了

而用接口呢?我们只是把这种飞、游泳的行为给抽象出来了,只要一个子类有这种行为,他就可以实现相对应的接口,接口是更加灵活的。

抽象类与接口的区别

通过以上对抽象类和接口的描述,我们总结一下抽象类和接口的区别

  1. 抽象类要被子类继承,接口要被类实现

  1. 接口只能做方法声明,抽象类中可以作方法声明,也可以做方法实现

  1. 接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量

  1. 接口是设计的结果,抽象类是重构的结果

  1. 抽象类和接口都是用来抽象具体对象的,但是接口的抽象级别最高

  1. 抽象类可以有具体的方法和属性,接口只能有抽象方法和不可变常量

  1. 抽象类主要用来抽象类别,接口主要用来抽象功能

http://www.mmbaike.com/news/25848.html

相关文章:

  • 网站模版源码杭州seo服务公司
  • 重庆做网站电话搜索引擎优化的主要特征
  • 怎么做兼职类网站吗全国疫情最新消息今天新增
  • 福州网站建站公司百度app官网下载安装
  • 湖南网站需要公安局备案北京网站营销seo方案
  • 怎样做摄影网站百度排行榜风云榜小说
  • odoo做网站提高百度快速排名
  • 太原网站建设价格解释seo网站推广
  • Sensei wordpress插件重庆seo网页优化
  • 如何找网站推广百度seo快速排名优化
  • 无锡做公司网站的百度有几个总部
  • wordpress页面编辑器吴中seo页面优化推广
  • WordPress百度自动翻译在线看seo网站
  • 国外网站设计大全苏州企业网站关键词优化
  • 合肥网页设计app优化网站
  • 揭阳企业网站建设公司私人做网站的流程
  • 云虚拟主机做二个网站百度热搜榜排名昨日
  • 微信公众号的网站开发网站seo搜索引擎优化案例
  • 电商模板网站软件培训班学费多少
  • 北京程序员公司有哪些防疫管控优化措施
  • oa网站建设虚拟主机搭建网站
  • 如何做赌博网站代理链接是什么意思
  • 著名网站织梦网站优化联系
  • 郑大远程教育动态网站建设百度指数app
  • 赤壁市建设局网站牛排seo系统
  • 百度优化师西安seo整站优化
  • wordpress点击日志页如何优化关键词提升相关度
  • 彭州做网站的公司如何在百度做免费推广产品
  • wordpress 无限滚动seo技术培训教程
  • 公司网站可以自己做么百度账号登录中心