Java抽象类、继承及多态和适配器的实现
Java继承
方法重写是Java语言多态的特性,必须满足以下条件
- 在子类中,方法名称与父类方法名称完全相同
- 方法的参数个数和类型完全相同,返回类型完全相同
- 方法的访问修饰符访问级别不低于父类同名方法的访问级别
- 在方法上添加@override注释,如果报错说明不是重写
方法重写限制
- final修饰的父类方法在子类中不能被重写
- static修饰的父类方法在子类中不能被重写,只能覆盖
super关键字
- super关键字和this类似,super修饰的是父类的对象,如super();调用的是父类的默认无参构造器
Java抽象类
抽象类特点
- 抽象类通常应包含抽象方法,也可以包含非抽象方法
- 抽象类不能使用final关键字修饰
- 抽象类自身不能够实例化
- 抽象类就是用来被继承的
抽象类的继承
- 子类必须实现父类所有的抽象方法
- 如果子类已经override实现父类的抽象方法,间接子类可以不用实现该方法。
适配器
- 定义一个适配器,类名+Adapator。比如MamalAdapator。继承给父类所有的方法一个空的实现。后面实例的类继承这个适配器,就可以选择性的重写实现部分父类的方法而不会报错。
- 抽象类只提供一个抽象方法然后供子类去继承和重写override,然后特别是override的这个功能,可以做到比如Dog.eat,Cat.eat,不同的类,有不同的方法实现,但是方法名称都相同,给开发提供了极大的灵活性,后面的程序员接手开发的时候,比如需要再新增Tiger.eat,只需要再写一个Tiger类继承父类再override他的eat方法就可以了。
/**
* 1 使用Eclipse 工具建立一个普通Java控制台应用程序, 自定义一个类继承Counter 类,
* 并根据理解定义在Counter类中定义的抽象方法对父类的抽象方法进行实现,体会普通类继承
* 抽象类必需做什么? 不同子类在继承Counter抽象类并实现抽象方法时的算法和什么有关.
*/ public class Test {
public static void main(String[] args) {
//用父类的类型去new一个子类
Counter cou = new Add();
//用父类的类型去调用子类的addition方法并实现
System.out.println("3+9的和是"+cou.addition(3,9));
}
}
/**
* 1 使用Eclipse 工具建立一个普通Java控制台应用程序,
* 自定义一个类继承Counter 类,并根据理解定义在Counter
* 类中定义的抽象方法对父类的抽象方法进行实现,体会普通类
* 继承抽象类必需做什么? 不同子类在继承Counter抽象类并
* 实现抽象方法时的算法和什么有关.
*/ //定义一个抽象的父类Counter
public abstract class Counter {
//定义一个抽象方法addition
public abstract int addition(int num1, int num2); public Counter(){
System.out.println("调用Counter父类构造器");
}
}
/**
* 1 使用Eclipse 工具建立一个普通Java控制台应用程序,
* 自定义一个类继承Counter 类,并根据理解定义在Counter类中
* 定义的抽象方法对父类的抽象方法进行实现,体会普通类继承抽象
* 类必需做什么? 不同子类在继承Counter抽象类并实现抽象方法
* 时的算法和什么有关.
*/ public class Add extends Counter{ int num1 = 0;
int num2 = 0; //重写父类中的加法并实现加法
@Override
public int addition(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
return num1+num2; } public Add(){
System.out.println("调用Add子类构造器");
}
}
-----------------------------------------------分割线--------------------------------------------------------------
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.test; import tool.abstracts.Construct;
import tool.abstracts.Tool;
import tool.abstracts.Traffic;
import tool.imp.Car;
import tool.imp.Hammer; public class Test {
public static void main(String[] args) {
//实例化顶级工具类对象,调用其中功能方法
Tool tool1 = new Traffic() {
@Override
public void constructTool() { }
};
tool1.trafficTool(); Tool tool2 = new Construct() {
@Override
public void trafficTool() { }
};
tool2.constructTool(); //实例化特殊工具类对象,调用其中功能方法
Traffic traffic = new Car();
traffic.trafficTool(); Construct construct = new Hammer();
construct.constructTool(); }
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.abstracts; //定义一个tool抽象类
public abstract class Tool {
//定义一个交通工具抽象方法
public abstract void trafficTool();
//定义一个建筑工具抽象方法
public abstract void constructTool();
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.abstracts; //定义一个交通工具抽象类继承自工具类
public abstract class Traffic extends Tool { public void trafficTool(){
System.out.println("我是所有交通工具的集合");
};
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.abstracts; //定义一个建筑工具抽象类继承自工具类
public abstract class Construct extends Tool { public void constructTool(){
System.out.println("我是所有建筑工具的集合");
};
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.adaptor; import tool.abstracts.Construct; //定义一个Construct的适配器
public class ConstructAdaptor extends Construct { //对交通工具方法进行一个重写和空实现
@Override
public void trafficTool() { }
//对建筑工具方法进行一个重写和空实现
@Override
public void constructTool() { }
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.adaptor; import tool.abstracts.Traffic; //定义一个Traffic的适配器
public class TrafficAdaptor extends Traffic { //对交通工具方法进行一个重写和空实现
@Override
public void trafficTool() {
System.out.println("我是所有交通工具的集合");
}
//对建筑工具方法进行一个重写和空实现
@Override
public void constructTool() { }
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.imp; import tool.adaptor.TrafficAdaptor; //定义一个普通类并具体实现交通工具方法
public class Car extends TrafficAdaptor {
@Override
public void trafficTool() {
System.out.println("我是交通工具汽车");
}
}
/**
*2 生活中很多东西都可以被人利用从而作为一种工具,这些工具都具备一个共同的功能那就是“用途”,
* 同时也有很多适合某个领域的工具(如,交通工具,建筑工具等 ),它们也在工具的范畴之内, 也有用
* 途功能,同时又具备自己的一些领域功能, 人们在使用这些工具时,可以根据实际情况选择哪种具体
* 类别的工具实体.
* 根据以上描述,结合本单元知识点,设计工具抽象类定义用途的抽象方法,在此类的基础上定义在此抽
* 象工具类范畴内的至少2种特殊工具的抽象类并继承上述的工具类 , 再根据实际使用工具的情况定
* 义更具体的工具类实现对2种特殊工具类其一的继承, 分别实例化顶级工具类及特殊工具类对象,调
* 用其中功能方法, 理解领悟抽象类之间的继承及实现多层继承的普通类要注意哪些问题.
*
* 3 继任务2实现, 当我们在使用继承抽象父类的时候, 我们的本意只是为使用某个抽象类的特定方法,
* 但是受于普通类继承抽象类的限制,必需实现所有父级抽象类中的所有方法,既使不用那些方法也必需
* 在子类中提供抽象方法的空实现,如何解决这个问题呢, 请在任务2的基础上编程实现.
*/ package tool.imp; import tool.adaptor.ConstructAdaptor; //定义一个普通类并具体实现建筑工具方法
public class Hammer extends ConstructAdaptor {
@Override
public void constructTool(){
System.out.println("我是建筑工具锤子");
}
}
-----------------------------------分割线-----------------------------------
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/ package test; import abstracts.Tool;
import imp.*; //定义一个主类Test
public class Test {
public static void main(String[] args) {
//实例化Person类
Person per = new Person();
//通过多态的方式,以父类的类型实例化各个子类
Tool car = new Car();
Tool plane = new Plane();
Tool print = new Printer();
Tool laptop = new Laptop(); //调用对应的子类去具体实现抽象方法
per.useTool(car);
per.useTool(plane);
per.useTool(print);
per.useTool(laptop);
}
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/ package abstracts; //定义一个抽象的工具类作为父类
public abstract class Tool {
//定义一个旅行的抽象方法
public abstract void travel(); //定义一个打印的抽象方法
public abstract void print(); //定义一个学习的抽象方法
public abstract void study();
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/
package adaptor; import abstracts.Tool; //定义一个适配器,继承工具类并提供3个方法的空实现
public class ToolAdaptor extends Tool {
@Override
public void travel() { } @Override
public void print() { } @Override
public void study() { }
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/
package imp; import adaptor.ToolAdaptor; //定义一个汽车类继承父类的适配器,重写并具体实现旅行的这个抽象方法
public class Car extends ToolAdaptor {
@Override
public void travel() {
System.out.println("使用汽车旅行");
}
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/
package imp; import adaptor.ToolAdaptor; //定义一个飞机类继承父类的适配器,重写并具体实现旅行的这个抽象方法
public class Plane extends ToolAdaptor {
@Override
public void travel(){
System.out.println("使用飞机旅行");
}
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/
package imp; import adaptor.ToolAdaptor; //定义一个笔记本电脑类继承父类的适配器,重写并具体实现学习的这个抽象方法
public class Laptop extends ToolAdaptor {
@Override
public void study(){
System.out.println("使用笔记本电脑学习Java");
}
}
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/
package imp; import adaptor.ToolAdaptor; //定义一个打印机类继承父类的适配器,重写并具体实现打印的这个抽象方法
public class Printer extends ToolAdaptor {
@Override
public void print() {
System.out.println("使用打印机打印文件");
} }
/**
* 4 在生活中,人们都会根据实际情况为完成某项任务而选择利用不同的工具.
* 如我要旅行,会用到汽车或者飞机,我在打印文件时会用到打印机,我要学习
* java会用到笔记本电脑, 如何设计一个应用程序定义一个人类并在人类中
* 定义一个使用工具的方法, 能够让在真正使用工具时, 用什么工具则这个
* 工具就能够出现在使用工具的过程中,请根据java语言继承及多态的特点
* 完成此编程任务.
*/ package imp; import abstracts.Tool; //定义一个Person类
public class Person {
//定义一个使用工具的方法,接收tool抽象类的类型,并调用tool抽象类的三个抽象方法
public void useTool(Tool tool){
tool.travel();
tool.print();
tool.study();
}
}
Java抽象类、继承及多态和适配器的实现的更多相关文章
- Java的继承和多态
看了博客园里面的一个文章,关于java的继承和多态: class A ...{ public String show(D obj)...{ return ("A and D"); ...
- 原来你是这样的JAVA[03]-继承、多态、抽象类
一.继承 Java中的继承使用关键字extends ,跟C#的语法略有差别. 1.子类构造器 java会自动在子类的构造器中插入对父类构造器的调用,也就是说在子类可以访问父类之前已经完成了父类的初始化 ...
- Java面向对象㈡ -- 继承与多态
Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...
- [转]Java中继承、多态、重载和重写介绍
什么是多态?它的实现机制是什么呢?重载和重写的区别在那里?这就是这一次我们要回顾的四个十分重要的概念:继承.多态.重载和重写. 继承(inheritance) 简单的说,继承就是在一个现有类型的基础上 ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...
- Java基础——继承和多态
面向对象的编程允许从已经存在的类中定义新的类,这称为继承. 面向过程的范式重点在于方法的设计,而面向对象的范式将数据和方法结合在对象中.面向对象范式的软件设计着重于对象以及对象上的操作.面向对象的方法 ...
- java - day007 - 继承(2), 多态,面向对象,抽象类
继承 新建子类对象是,先新建父类对象,并执行父类的构造方法, 默认执行父类的无参构造放方法 可以 手动调用父类的有参构造 super(参数 ) super super.xxx() 调用父类成员 一般重 ...
- java面向对象--继承与多态
可以为一个变异单元中的每个类创建一个main方法,只有命令行所调用的那个类的main方法才会被调用,这样方便进行单元测试.继承时,一般将所有的数据成员都指定为private,将所有的方法指定为publ ...
- Java中继承与多态
Java类的继承继承的语法结构: [修饰符列表] class 子类名 extends 父类名{ 类体; }子类就是当前这个类,父类就是我们要复用的那个类java中只支持单继承 ...
随机推荐
- Windows核心编程 第25章 未处理异常和C ++异常(下)
这一节东西比较少,本应该归并在上一节里,但是昨天太晚了.就先把那些东西分为上了.这节里面就一个问题,C++异常与结构性异常的对比(try和__try的区别): C++异常与结构性异常的对比 S E H ...
- gitlab + php自动部署
功能简介 本地往服务器推送代码之后,触发web钩子,服务器拉取刚刚推送的代码 步骤 1.在gitlab后台配置钩子 项目->编辑项目->Web钩子->新增钩子 2.在服务器端为www ...
- VMware Workstation中安装Hyper-V
1:在虚拟机设置中,CPU属性中勾选"Virtualize Intel VT-x/EPT or AMD-V/RVI"来启用虚拟机的CPU支持虚拟化. 2:2.在虚拟机文件所在目录中 ...
- primary key
只要使用innodb就要为表指定主键: 如果不指定mysql就会自己找不为空且为一的作为主键,如果找不到,就会使用默认的(软件自己预定好的)作为主键: 主键分为单列主键和复合主键,用法和单列唯一,联合 ...
- C#基础之==(双等于号)与equals()区别
C#中Equals和= =比较 这两种方式也是大家在日常编码工作当中用的比较多的判断方式.之前在使用的时候也没太关注两者在比较不同类型的时候存在哪些区别. 今天就和大家一起深入了解一下其中区别 一.值 ...
- 通过format学习,python的内部方法是面象对象的-python面向对象
1.常用的形式 s ="{0} {0} qqq {0} xxx {1}".format('dog','cat')print(s) 结果:dog dog qqq dog xxx ca ...
- sed -n "29496,29516p" service.log:从29496行开始检索,到29516行结束
在工作中常用的Linux命令 javalinux 发布于 2019-07-24 约 11 分钟 前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://gith ...
- 在虚拟机中安装 Ubuntu
https://www.cnblogs.com/huohu121/p/12250869.html 火狐python 博客园 首页 新随笔 联系 订阅 管理 随笔 - 54 文章 - 0 评论 - ...
- Centos 7 进入单用户模式更改root密码方法
进入单用户模式的方法 方法一: 1.开机进入grub菜单的时候上下选择,按e编辑. 到linux16所在行的最后面. ro 只读文件系统 biosdevname=0 戴尔的服务器需要设置 net.if ...
- Spark SQL 之 RDD、DataFrame 和 Dataset 如何选择
引言 Apache Spark 2.2 以及以上版本提供的三种 API - RDD.DataFrame 和 Dataset,它们都可以实现很多相同的数据处理,它们之间的性能差异如何,在什么情况下该选用 ...