本篇文章给大家带来了关于java的相关知识,其中主要整理了接口与抽象类的相关问题,当需要从几个类中派生出一个类,继承他们所有的属性和方法,java没有多重继承需要用接口实现,下面一起来看一下,希望对大家有帮助。

推荐学习:《java视频教程》
public class UsbTest {
public static void main(String[] args) {
Computer com =new Computer();
Flash flash=new Flash();
com.transferData(flash); // USB usb =new Flash()
com.transferData(new Printer());
/*
* U盘开始工作
* 传输数据
* U盘结束工作
* 打印机开始工作
* 传输数据
* 打印机结束工作
*
* */
}}class Computer{
public void transferData(USB usb){
usb.start();
System.out.println("传输数据");
usb.stop();
}}interface USB{
void start();
void stop();}class Flash implements USB{
@Override
public void start() {
System.out.println("U盘开始工作");
}
@Override
public void stop() {
System.out.println("U盘结束工作");
}}class Printer implements USB{
@Override
public void start() {
System.out.println("打印机开始工作");
}
@Override
public void stop() {
System.out.println("打印机结束工作");
}}public class JDK8Test {
public static void main(String[] args) {
SubClass sub =new SubClass();
CompareA.methods1();
sub.methods2();
/*
* Compare 北京
* Compare 上海
*/
}}class SubClass implements CompareA{}interface CompareA{
public static void methods1() {
System.out.println("Compare 北京");
}
public default void methods2() {
System.out.println("Compare 上海");
}}public class NetWorkTest {
public static void main(String[] args) {
Server server=new Server();
ProxyServer proxyServer=new ProxyServer(server); // 放的是被代理对象进去
proxyServer.browse(); // 调用的是代理对象,但结果是真实对象的方法被调用
/*
* 检查工作
* 真实服务器访问网络
*/
}}interface NetWork{
void browse();}// 被代理类class Server implements NetWork{
@Override
public void browse() {
System.out.println("真实服务器访问网络");
}}// 代理类class ProxyServer implements NetWork{
private NetWork work;
public ProxyServer(NetWork work){
this.work=work;
}
public void check(){
System.out.println("检查工作");
}
@Override
public void browse() {
check();
work.browse();
}}public class InnerClassTest {
public static void main(String[] args) {
// 实例化Dog,静态类
Pseson.Dog dog=new Pseson.Dog();
dog.eat();
// 吃骨头
// 实例化Cat,非静态类
Pseson p1 =new Pseson();
Pseson.Cat cat=p1.new Cat();
cat.eat();
// 猫吃鱼
}}class Pseson{
String name;
int age;
public void eat(){
System.out.println("吃饭");
}
static class Dog{
String name;
int age;
public void eat(){
System.out.println("吃骨头");
}
}
class Cat{
public void eat(){
System.out.println("猫吃鱼");
}
}}public class InnerClassTest {
public static void main(String[] args) {
// 实例化Cat,非静态类
Pseson p1 =new Pseson();
Pseson.Cat cat=p1.new Cat();
cat.eat();
cat.display("小花");
/*
* 小花
* 波斯猫
* 人
*/
}}class Pseson{
String name="人";
int age;
public void eat(){
System.out.println("吃饭");
}
static class Dog{
String name;
int age;
public void eat(){
System.out.println("吃骨头");
}
}
class Cat{
String name="波斯猫";
public void eat(){
System.out.println("猫吃鱼");
}
public void display(String name){
System.out.println(name); // 方法中name
System.out.println(this.name); // 内部类中name
System.out.println(Pseson.this.name); // 外部类中name
}
}}推荐学习:《java视频教程》
以上就是JAVA接口与抽象类详细解析的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号