第4章继承、接口、和内部类2PPT教学课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020/12/09
2
abstract class ep4_5_Animal { String str; ep4_5_Animal(String s) { str = s; } abstract void eat();
} class ep4_5_Horse extends ep4_5_Animal {
}
接口体:
接口可以有3种成员:常量、抽象方法、内
特殊的是,接口的方法都是抽象方法,属性都是常量。
1. Java中接口的例子: public interface Runnable{
void run () ; }
public interface ActionListener extends EventListener{ void actionPerformed (ActionEvent e);
4.4 abstract
用abstract关键字修饰的方法称为抽象方法, 用abstract关键字修饰的类称为抽象类。
抽象方法没有方法体,也没有{ },但有; 例如:abstract void say(); 抽象方法属于不完整的方法,方法体要由他
的子类去实现。
2020/12/09
1
抽象类的本质是将相关的类组织在一起,提供一个公共类的基础,而 那些被组织在一起的具体类作为它的子类而存在。
例4-6
例4-7
2020/12/09
6
4.5 接口
接口的引入: Java坚决抛弃类层次上的多继承,单继承 使代码更可靠;
但为了避免单继承的缺陷,Java提供了接 口机制,满足多继承特性;
接口只有abstract方法和常量,避免了多继 承的缺点。2020/12/09 Nhomakorabea7
4.5.1声明接口
接口(interface)是定义abstract方法和常量的Java程序单元, 类似于类,它们同处一个级别,接口也封装了方法和属性;
public static final double price = 1450.00; public static final int counter = 5; }
2020/12/09
9
2.接口的声明 声明如下: [<接口修饰符>] interface <接口名> [extends
<父接口名列表>] { [<接口体>]
}
}
class ep4_5_Dog extends ep4_5_Animal {
String str;
ep4_5_Dog(String s) {
super(s);
}
void eat() {
System.out.println("狗吃骨头!");
} 2020/12/09
4
}
3.Object类
该类是所有类的祖先,Java中的每个类都使 用Object作为超类(父类)。
// 定义方法的接口 public interface myinterface {
public void add(int x, int y); public void volume(int x,int y, int z); }
// 定义程序使用的常量的接口 public interface myconstants {
String str; ep4_5_Horse(String s) {
super(s); } void eat() {
System.out.println("马吃草料!"); } } class ep4_5_Dog extends ep4_5_Animal { String str; ep4_5_Dog(String s) {
抽象类不能被实例化,即抽象类必须被继承。
子类要实例化,必须改写父类中的抽象方法,为父类所有的抽象方法 提供方法实现。
例如: abstract class AAA{ abstract public void吃 () ; //… }
抽象类与抽象方法的关系是:抽象类中可以没有抽象方法,但是含有 抽象方法的类必须是抽象类。
所有对象都使用或是覆盖该类的方法。
在不明确给出父类的情况下, Java会自动把 Object类作为要定义类的父类。
Object类有一个默认的构造方法Object(),在 创建子类对象时,都会先调用这个默认构 造方法。
2020/12/09
5
Object类提供有很多有用的方法,下面介绍 其中的equals方法和toString方法。
super(s); } void eat() {
System.out.println("狗吃骨头!"); } 2020/12/09 }
class ep4_5 { public static void main(String args[]) { ep4_5_Horse Horse1 = new ep4_5_Horse("马"); ep4_5_Dog Dog1 = new ep4_5_Dog("狗"); Horse1.eat(); Dog1.eat();
}
2020/12/09
8
public interface Printable{ final int PAGE_EXISTS; final int NO_SUCH_PAGE;
int print (Graphics graphics , PageFormat pageFormat, int pageIndex); }
}
class ep4_5_Horse extends ep4_5_Animal {
String str;
ep4_5_Horse(String s) {
super(s);
}
Cannot instantiate the type
void eat() {
ep4_5_Animal
System.out.println("马吃草料!");
} }
马吃草料! 狗吃骨头!
3
abstract class ep4_5_Animal { String str; ep4_5_Animal(String s) { str = s; } abstract void eat();
class ep4_5 { public static void main(String args[]) { ep4_5_Animal a=new ep4_5_Animal ("马"); } }
相关文档
最新文档