【理解】Java 关于抽象类、抽象方法、接口以及架包

19.10.22
今日份学习知识点
用关键字 abstract 修饰的方法称为 abstract 方法(抽象方法)
对于抽象方法,只允许声明,不允许实现,而且不允许使用 final 和 abstract 同时修饰一个方法
抽象方法(以下简称抽方)必在抽象类(以下简称抽类)中
抽类不能实例化
抽类中可以没有抽方
抽类只能被继承
抽类的子类必实现其所有抽方,否则仍未抽类
————————————————————
接口:比抽类更抽象(完全抽)
即,抽类中所有方法都抽
则可以用接口来定义
—————————
接口中的变量(属性)默认 public static final,即,全局常量
接口中的方法(函数)默认 public abstract,即,抽方
:public 是不可少的,子类继承时要注意访问修饰符用 public
—————————————————————————
接口可以继承接口
接口用 public 修饰或省略
类 implements 接口
接口 extends 接口
若同时有
Dog extends LandAnimal implements Animal
extends 必在 implements 之前
即,先继承再实现
接口的属性(变量)可以直接访问,(接口中只有常量,这里的变量也是常量)
———————————————————————
包:通常用来放功能相同的类
用包后,麻烦
dos中,编译时:javac -d __
运行时:java -cp henu.rjxy .__(加上包名)
cp:类路径
系统环境变量 classpath 指定目录
现在用eclipse方便多了
Export 打包,JAR file 导架包(只导一个 .java 也可以)
JRE 中有好多 jar
引 jar ,Build Path ,Add External Archives
import 导入包
删除导入的包:BP cf Libraries Remove (BP Bulid Path)
若想同时导入有关联的几个包:
BP Add Libraries UserLibraries
New UL name
A.EJAR,:这只是个命名,看自己
import 时,交代清楚,不能用 *

https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html----Eclipse中导入外部jar包

:具体图片在下

ClassPractice(课堂练习)

cp1 抽象类

Animal.java

package cp1;

public abstract class Animal {		//抽象类不能被实例化,只能被继承
	//1.定义抽象方法,抽象方法必须在抽象类中,抽象类中可以没有抽象方法
	abstract void shout();
}

Dog.java

package cp1;

public class Dog extends Animal {
	//继承抽象类的子类必须将抽象类中所有的抽象方法都实现,否则该子类仍然是抽象类
	@Override	//重写(实现)父类中的抽象方法shout()
	public void shout() {
		// TODO Auto-generated method stub
		System.out.println("dog shout!");
	}

}

Test1.java (测试类)

package cp1;

public class Test1 {
	public static void main(String[] args) {
		Dog dog = new Dog();
		dog.shout();
	}
}

运行结果:
在这里插入图片描述

cp2 接口

Animal.java

package cp2;

//1.接口,是完全抽象的类的另一种表示形式,即所有方法都是抽象的
public interface Animal {
	//2.接口中所有变量(属性)默认的修饰“public static final”,即常量(全局变量)
	String LIFESTYLE = "alive";		//5.常量一般全大写字母
	//3.接口中所有方法(函数)默认的修饰“public abstract”,即抽象方法
	void shout();
	void sleep();
	void eat();
	void run();
}
//4.接口可以继承接口

Dog.java

package cp2;

public class Dog extends LandAnimal {
	//1.完全类必实现接口所有抽象方法
	@Override
	public void shout() {
		// TODO Auto-generated method stub
		System.out.println("Dog shout");
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("Dog eat");
	}

}
//2.若是类同时继承和实现接口,extends必在implements之前
//例如:Dog extends LandAnimal implements Animal
//即,先继承再实现
//注释里的每个“必”字都是指当前知识范围内,外面世界太大太大了。。。

LandAnimal.java

package cp2;

public abstract class LandAnimal implements Animal {	//没有实现所有抽象方法,所以LandAnimal仍是抽象类
	public void sleep() {
		System.out.println("sleep onland");
	}
	public void run() {
		System.out.println("run onland");
	}	//实现了两个方法
}

Test2.java(测试类)

package cp2;

public class Test2 {
	//测试类
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Dog dog = new Dog();
		dog.eat();
		dog.shout();
		dog.sleep();
		dog.run();
		System.out.println(Animal.LIFESTYLE);	//接口的属性可以直接访问
	}

}

运行结果:
在这里插入图片描述

导架包

Export 打包,JAR file 导架包(只导一个 .java 也可以)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
桌面上多了个这个
在这里插入图片描述
引 jar ,Build Path ,Add External Archives
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除导入的包:BP cf Libraries Remove (BP Bulid Path)
在这里插入图片描述
在这里插入图片描述
打住,我电脑上的 eclipse 直接 Remove 就行了。。。
在这里插入图片描述
若想同时导入有关联的几个包:
BP Add Libraries UserLibraries
New UL name
A.EJAR,:这只是个命名,看自己
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
https://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html----Eclipse中导入外部jar包



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值