java 二维数组存对象_面向对象深入和二维数组

本文详细讲解了Java中的抽象类和抽象方法,包括它们的特征、使用场景和规则。接着探讨了接口的使用,包括接口的内容、接口与类的关系、接口的实现方式。此外,还介绍了内部类的种类、特点以及不同类型的内部类的使用方法。内容涵盖抽象类、接口和内部类在Java编程中的重要性和应用。
摘要由CSDN通过智能技术生成

【008】

1. 抽象类和抽象方法

(1) 简述抽象方法的特征

1、抽象方法只有声明,没有方法体并且以分号结尾

2、抽象方法只能声明在抽象类中(含有抽象方法的类必须是抽象类)

3、抽象类中可以包含0个或多个抽象方法

4、抽象方法必须被子类实现

5、如果子类不能实现父类中的抽象方法,那么子类也必须是抽象类

总结:abstract可以修饰类和方法

(2) 什么情况下使用抽象方法?

通过抽象方法,可以避免自雷设计的随意性,通过抽象类,我们就可以做到严格限制子类的设计,使子类更加通用(程序的可扩展性和可维护性)

(3)什么情况下使用抽象类?

父类的名称比较抽象,创建对象无意义

//抽象类abstract class Animal {

abstract public void shout(); //抽象方法}

class Dog extends Animal {

//子类必须实现父类的抽象方法,否则编译错误 public void shout() {

System.out.println("汪汪汪!");

}

public void seeDoor(){

System.out.println("看门中....");

}

}

//测试抽象类public class TestAbstractClass {

public static void main(String[] args) {

Dog a = new Dog();

a.shout();

a.seeDoor();

}

}

(3) 下列选项中,关于Java的抽象类和抽象方法说法正确的是。(AC)

A 抽象类中可以含有0个或多个抽象方法

B 抽象类中不可以有构造方法

C 一个类中若有抽象方法,则这个类必为抽象类

D 子类必须重写父类所有的抽象方法

(4) 在Java中关于abstract关键字,以下说法正确的是。(AB)

A abstract类中可以没有抽象方法

B abstract类的子类也可以是抽象类

C abstract方法可以有方法体

D abstract类可以创建对象

2. 接口的详解

(1) 接口中可以包含哪些内容?

1、抽象方法

2、非抽象方法(JDK1.8新特性,必须使用default关键字修饰)

3、属性(public static final)常量,public static final可以省略不写

4、接口中不可以包含构造方法,因为接口不是类

( JDK1.7之前,接口中只能包含静态常量、抽象方法,不能有普通属性、构造方法、普通方法。5. JDK1.8后,接口中包含普通的静态方法)

(2) 接口和类的关系?

1、类去实现接口中的抽象方法,是实现关系implements

2、一个类实现继承关系,又存在实现关系,extends在前还是implements在前?

继承- 父子关系-亲爹

实现-实现关系-干爹

Extends在前implementes在后

3、如果父类与接口中有完全相同的方法(一模一样),子类实现、实现类所实现的方法是父类的还是接口的?

父类优先于接口,子类实现的是父类中的方法

4、如果父类中与接口中有同名方法,对子类\实现类有什么要求呢?

父类与接口中的方法,在子类/实现类中构成方法的重载

(3) 在Java接口中,下列选项中属于有效的方法声明是。(A)

A public void aMethod( );

B final void aMethod( );

C void aMethod(){ }

D private void aMethod( );

(4) 接口定义正确的说法是。(C)

A接口中只能定义常量和抽象方法

B接口中可以定义普通方法和普通变量

C接口可以被new,抽象方法不行

D接口不可以被继承,只能被实现,也可以被多个类实现

3. 使用接口的意义

(1) 接口有哪些特征?

接口的传递性

接口的继承性(多继承)

(2) 使用接口实现多态的步骤?

接口类型(引用数据类型)指向实现类的对象

1、编写接口

2、实现类实现接口中的方法

3、接口(类型)new实现类对象

(3) 以下代码的下划线处填入正确的关键字。

public interface Fly {

public void flying();//飞行的能力}

class AirPlane __A___ Fly{

@Override

public void flying() {

System.out.println("飞机在祖国的蓝天上自由飞翔...........");

}

}

A implements

B extends

C public

D override

(4) 接口定义了“做什么”,而实现在负责完成“怎么做”,体现了功有和实现分离的原则,接口和实现之间可以认为有一种什么关系。B

A is-a的关系

B has-a的关系

C 没有关系

D 以上均不正确

4. 内部类详解

(1) 内部类有哪些特点?

1、内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员),反之则不行

2、内部类作为外部类成员,可声明为private,默认,protected或者public

3、内部类成员只有在内部类的范围之内是有效的

4、用内部类定义在外部类中不可访问的属性。这样就在外部中实现了比外部类的private还要小的访问权限

(2) 什么是内部类

一个类定义在另一个类的内部,该类就称为内部类

(3) 内部类可以分哪几类?

内部类主要分为成员内部类(非静态内部类、静态内部类)、匿名内部类、局部内部类

类文件 外部类$内部类.class

一、非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同)</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值