Java 抽象类和接口&内部类及综合

您所在的位置:网站首页 各种动物画出小汽车 Java 抽象类和接口&内部类及综合

Java 抽象类和接口&内部类及综合

2024-07-16 07:42| 来源: 网络整理| 查看: 265

11.抽象类和接口

1.在JDK1.7中,下述说法中抽象类与接口的区别与联系正确的有哪些? [多选题]全选 您的回答: A、抽象类中可以有普通成员变量,接口中没有普通成员变量。 B、抽象类和接口中都可以包含静态成员常量。 C、一个类可以实现多个接口,但只能继承一个抽象类 D、抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。 2.抽象类与接口的区别是什么?

抽象类中可以有一个或多个抽象方法,而接口中的方法必须都是抽象方法 接口所属性只能是publist static final修饰的,而抽象类中的属性则可以是任何类型的属性; 抽象类只能单继承,接口之间可以是多继承,一个类可以实现多个接口 通常来说,抽象类可以表示同一类事物,而接口可以表示一种能力

3.类和类之间的关系有哪几种?分别是什么?每种关系在代码中是如何体现的? 共5种 继承 关联 聚合 组合 依赖 继承:is 判断:is 代码:extends 依赖:偶然发生的联系, ​ 判断:use​ 代码:方法中的参数,或方法中的局部变量; 关联:是一种强依赖; 判断:has 代码:作为属性来存在; 聚合:关联的一种特殊形式,代码相同;都是属性;主要强调的是整体和局部 组合:关联的一种特殊形式,代码相同,都是属性;整体和局部有相同的生命周期; 4.【编程题】类之间的关系 要求:先说明由几个类;然后确定类和类(接口)的关系,画出类图;再编程来实现 1.模拟司机(Driver)可以开汽车(Car);而汽车不属于司机; 2.武将,可以使用各种武器(刀,弓,矛)进行攻击,武将最多只能有一把武器,可以对敌军的人物造成伤害; 3.电脑可以从U盘,数据相机,mp3等电子设备中下载数据; 4.班级由多个学生和只有一个教师组成; 更改老师,添加,删除学生; 5.模拟天天酷跑中的主人公,主角(Actor)可以有一个宠物,宠物可以有猫,狗,免,主角在跑的时侯,他的宠物可以跟着一起跑; 6.模拟一下开心牧场;农场中有农户,各种动物(牛,马,羊,鸡等),农户可以喂养动物; 略(翻笔记)类图!!!

笔记 抽象类(abstract) 抽象方法,没有方法的实现体。如果一个类中含有抽象方法,这个类一定是抽象类。抽象类中也可以包含非抽象方 法 抽象类不能实例化,可以定义一个类继承抽象类 ,重写所有的抽象方法,创建这个子类的对象 代码

public abstract class Test { //属性 private String name; //常量属性 public static final String IP = "192.168.1.11"; //构造器 public Test(){ } //定义非抽象方法 public void method2(){ } //定义了一个抽象方法 public abstract void method(); } public class TestSub extends Test { @Override public void method() { System.out.println("TestSub method"); } public static void main(String[] args) { TestSub ts = new TestSub(); ts.method(); } }

模板设计模式 定义一个抽象类,在抽象类中的非抽象方法中 写好一个算法过程,在这个方法中调用抽象类中的抽象方法,就相 当于定义了一个模板类。要使用这个模板类,必须要定义一个子类继承模板类,重写抽象方法,就可以调用子类继 承的非抽象方法了。

public abstract class Bank { public abstract double getBenjin(); public abstract double getLv(); /** * 本金 * 利率 * @return */ public double lixi(){ return getBenjin()*getLv(); } } public class BankSub extends Bank { @Override public double getBenjin() { return 10000; } @Override public double getLv() { return 0.03; } public static void main(String[] args) { BankSub b = new BankSub(); System.out.println(b.lixi()); } }

接口(interface) 定义接口 语法: [] interface 接口名{ [常量] [抽象方法] } 接口一定是public的 接口的属性,默认是有public static final修饰,因为接口中只能定义常量 接口中的方法,默认是有abstract修饰,因为接口中的方法都是抽象方法

public interface ITest { //public static final String name = "test"; String name = "test"; public void method(); }

实现接口 定义一个类实现接口(implements),重写接口中所有的方法

public class TestImpl implements ITest{ @Override public void method() { System.out.println("TestImpl method方法"); } public static void main(String[] args) { TestImpl t = new TestImpl(); thod(); } }

一个类可以实现多个接口

public class TestImpl implements ITest,IUSB{ @Override public void method() { System.out.println("TestImpl method方法"); } @Override public void tran() { System.out.println("USB 传输数据"); } public static void main(String[] args) { TestImpl t = new TestImpl(); thod(); } }

一个类可以继承一个类并实现多个接口,把extends写在implements的前面

public class TestImpl extends Computer implements ITest,IUSB{ @Override public void method() { System.out.println("TestImpl method方法"); } @Override public void tran() { System.out.println("USB 传输数据")


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3