重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
public abstract class Bird { public void type(){ System.out.println("我们都是鸟"); } } public interface Fly { void flying(); } public interface Swing { void swing(); } public class Parrot extends Bird implements Fly { public void flying() { System.out.println("因为我是 鹦鹉 所以 我能飞!"); } } public class Penguin extends Bird implements Swing{ public void swing() { System.out.println("因为我是 企鹅所以 我能游泳!"); } }
成都创新互联公司10余年专注成都高端网站建设按需网站制作服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;成都创新互联公司服务内容包含成都网站建设,重庆小程序开发公司,软件开发,网络营销推广,网络运营服务及企业形象设计;成都创新互联公司拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。
可以。
一个java文件允许里面包含许多类,但只能有一个public类,且文件名要求与public类类名一致,只要保持这个原则,父类子类写在一个文件内是可以的,但实际开发中,我们建议一个文件只写一个类。
父类跟子类也能写在同一个文件夹里,同一文件夹内是说明他们是在同一个包里面。
提供以下代码供参考:
public class Main {
/*
在main方法中测试以上各类
*/
public static void main(String[] args) {
Vehicles v0 = new Vehicles("长城", "白色");
v0.run();
v0.showInfo();
Car s1 = new Car("大众", "黑色");
s1.run();
s1.setSeate(4);
s1.showCar();
s1.showInfo();
Truck s2 = new Truck("东风", "红色");
s2.run();
s2.setLoad((float)1995);
s2.showTruck();
s2.showInfo();
}
}
/*
定义一个名为Vehicles(交通工具)的类,该类中应包含String类型的成员属性brand(商标)和color(颜色),
还应包含成员方法run(行驶,在控制台显示“我已经开动了”)和showInfo(显示信息,在控制台显示商标和颜色),并编写构造方法初始化其成员属性。
*/
class Vehicles {
private String brand;// 商标
private String color;// 颜色
public Vehicles(String brand, String color) {
this.brand = brand;
this.color = color;
}
public void run() {
System.out.println("我已经开动了");
}
public void showInfo() {
System.out.println("商标:" + brand + ";颜色:" + color + "\n");
}
}
/*
编写Car(小汽车)类继承于Vehicles类,增加int型成员属性seats(座位),还应增加成员方法showCar(在控制台显示小汽车的信息),
并编写构造方法。
*/
class Car extends Vehicles {// 小汽车
private int seats;
public Car(String brand, String color) {
super(brand, color);
}
public void setSeate(int seats) {
this.seats = seats;
}
public int getSeats() {
return seats;
}
public void showCar() {
System.out.println("小汽车,座位数:" + seats + "个");
}
}
/*
编写Truck(卡车)类继承于Vehicles类,增加float型成员属性load(载重),
还应增加成员方法showTruck(在控制台显示卡车的信息),并编写构造方法。
*/
class Truck extends Vehicles {//卡车
private float load;
public Truck(String brand, String color) { // 构造方法
super(brand, color);
}
public double getLoad() {
return load;
}
public void setLoad(float load) {
this.load = load;
}
public void showTruck() {
System.out.println("卡车,载重:" + load + "公斤");
}
}
运行截图:
Java SDK和JDK的区别如下:
1、从字面意思进行区别:
① SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”。
② JDK(Java Development Kit,Java开发工具包)是Sun Microsystems针对Java开发员的产品。
2、从应用范围进行区别:
① SDK是一个覆盖面相当广泛的名词,辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。SDK是一系列文件的组合,它为软件的开发提供一个平台(它为软件开发使用各种API提供便利)。因此,SDK包括JDK。
② JDK是使用最广泛的Java SDK,也就是说JDK属于SDK。
扩展资料:
SDK就像一台机床(它可以是多用途的),它可以生产ABC等工件;
当我们要生产A时,就给机床换上生产A的刀具a;
当我们要生产B时就换上生产B的刀具b;
当我们要生产C时就换上生产C的刀具c;
当我们要用机床(SDK)生产java程序时,我们就给机床换上刀具jdk,于是就把安装了jdk的SDK叫做java SDK.
参考资料:百度百科-SDK
百度百科-JDK
import java.util.ArrayList;
import java.util.List;
public class TestList {
public static void main(String[] args) {
// 初始化一个集合(8)则表示初始化容量为8,默认加载引子0.75的集合。加载因子建议不要动。
// 因数组大小固定,使用非常不便,所以系统实现了可自动扩充的集合,方便调用。
ListQQ list = new ArrayListQQ();
QQ q1 = new QQ(1, "qq1", "info1");
QQ q2 = new QQ(2, "qq2", "info2");
QQ q3 = new QQ(3, "qq3", "info3");
QQ q4 = new QQ(4, "qq4", "info4");
// 添加可用add方法
// 添加list.add(1,q1)表示放在第二个位置,其他则延续,很容易出错,很少使用
list.add(q1);
list.add(1, q2);
list.add(q3);
list.add(q4);
// 显示所有list中的企鹅
for (QQ qq : list) {
// 打印一个对象,会调用对象的toString()方法,没有的话将调用父类的,直到Object。
System.out.println(qq);
}
// 第二种方式
QQ temp = null;
for (int i = 0; i list.size(); i++) {
temp = list.get(i);
System.out.println(temp);
}
// 第二种方式扩展
// 这种方式用于遍历集合,且需要删除集合中的内容时可以这么用。即自己实现删除逻辑。
// 用上面方式,则将移除某项内容后,list后面的元素将前移,list.size()也会变小,删除后将不能遍历所有的。
// 而这种倒序遍历,删除的是已经遍历过的。不影响遍历。
for (int i = list.size() - 1; i = 0; i--) {
temp = list.get(i);
// list.remove(i);// 符合某个条件,即可删除某条内容。
System.out.println(temp);
}
// 查看企鹅中帐号为3的情况,调用集合给定的方法。
QQ find = new QQ(3);
// 注意----操作list各种给定方法时,如参数是object。则必须类实现equals方法。否则将使用==比较
// 查找某内容位置 =0表示存在。
int id = list.indexOf(find);
// 获取
if (id = 0) {
// 获取列表中的qq3信息
find = list.get(id);
System.out.println("id=" + id + find);
}
// 查询qq=1是否存在
QQ ex = new QQ(1);// id=5则不存在
boolean exist = list.contains(ex);
if (exist) {
System.out.println("集合中存在帐号=" + ex.getId() + "的QQ");
} else {
System.out.println("集合中不存在帐号=" + ex.getId() + "的QQ");
}
// 删除帐号= 1 = 5的qq
QQ del1 = new QQ(1);
QQ del5 = new QQ(5);
// list实现删除
boolean result1 = list.remove(del1);
boolean result5 = list.remove(del5);
if (result1) {
System.out.println("删除帐号id=" + del1.getId() + "成功");
} else {
System.out.println("删除帐号id=" + del1.getId() + "失败");
}
// 已经少了一个
System.out.println(list.size());
if (result5) {
System.out.println("删除帐号id=" + del5.getId() + "成功");
} else {
System.out.println("删除帐号id=" + del5.getId() + "失败");
}
System.out.println(list.size());
}
}
class QQ {
private long id;
private String name;
private String info;
public long getId() {
return id;
}
public QQ() {
}
public QQ(long id) {
this.id = id;
}
public QQ(long id, String name, String info) {
super();
this.id = id;
this.name = name;
this.info = info;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
// 比较两个QQ是否一致,自定义规则,现在是id一样就一样,
// 只有实现了equals方法(继承于Object),对象比较时就能按自己的方式比较。否则会用==比较。
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (obj instanceof QQ) {
return ((QQ) obj).getId() == getId();
}
return false;
}
public String toString() {
return "[id=" + getId() + ",name=" + getName() + ",info=" + getInfo()
+ "]";
}
}
集合很常用,也很简单,可以看api文档
ArrayList和hashMap两个非常重要,一定要熟练的使用