`
i拾贝
  • 浏览: 29935 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java的抽象类,abstract关键字

    博客分类:
  • java
阅读更多

java的抽象类,abstract关键字

TestAbstract.java

//抽象类abstract
//当一个类中含有抽象方法是,类是"残缺的",用abstract修饰为抽象的类,
abstract class Animal {
	private String name;

	Animal(String name) {
		this.name = name;
	}

	//抽象方法,只有方法的定义,没有方法的具体实现,抽象方法就是用来重写的
	public abstract void enjoy();

}

//抽象类不能被实例化
abstract class Cat extends Animal {
	private String eyesColor;
	
	Cat(String n,String c) {
		super(n); 
		eyesColor = c;
	}
	
	//在子类中可以不实现父类的抽象方法,仍为抽象方法,子类也要变为抽象类
	public abstract void enjoy();
}

class Dog extends Animal {
	private String furColor;
	
	Dog(String n,String c) {
		super(n); 
		furColor = c;
	}

	public void enjoy() {
		System.out.println("狗叫声......");
	}
}

class Bird extends Animal {
	Bird() {
		super("bird");
	}
	public void enjoy() {
		System.out.println("鸟叫声......");
	}
}

class Lady {
	private String name;//姓名
	private Animal pet;//宠物Animal类
	
	Lady(String name,Animal pet) {
		this.name = name; 
		this.pet = pet;
	}
	
	//我的宠物高兴了
	public void myPetEnjoy(){
		pet.enjoy();
	}
}

public class TestAbstract {
	public static void main(String args[]){
		//抽象类Cat不能被实例化
		//Cat c = new Cat("catname","blue");
		Dog d = new Dog("dogname","black");
		Bird b = new Bird();
		//Lady l1 = new Lady("l1",c);
		Lady l2 = new Lady("l2",d);
		Lady l3 = new Lady("l3",b);
		
		//根据实际的对象来确定调用的方法,不是通过引用类型来确定的,不然就就一定调用Animal中的enjoy()方法,
		//l1.myPetEnjoy();
		l2.myPetEnjoy();
		l3.myPetEnjoy();
	}
}

 

 

分享到:
评论

相关推荐

    Java面向对象(高级)- 抽象类与抽象方法(或abstract关键字)

    【Java面向对象(高级)- 抽象类与抽象方法(或abstract关键字)】 在Java编程语言中,面向对象编程是其核心特性之一。抽象类和抽象方法是面向对象编程中的重要概念,它们允许程序员创建一种通用的模板,用于定义一...

    JAVA抽象类和抽象方法(abstract)实例分析

    JAVA抽象类和抽象方法实例分析 JAVA抽象类和抽象方法是Java面向对象程序设计中非常重要的概念,它们是Java编程语言的基础组成部分。抽象类和抽象方法可以帮助开发者更好地组织和设计程序架构,提高代码的可读性和...

    Java关键字大全 Java关键字

    abstract关键字用于定义抽象类和抽象方法。抽象类不能实例化,必须被子类继承和实现。抽象方法必须在子类中被重写。abstract关键字不能应用于static、private或final方法,因为这些方法不能被重写。 示例: public...

    Java实例化一个抽象类对象的方法教程

    由于抽象类自身不能被实例化,这意味着你不能使用`new`关键字直接创建一个抽象类的对象。然而,尽管不能直接实例化,抽象类在特定情况下依然可以间接地创建对象。以下将详细介绍如何在Java中处理抽象类实例化的问题...

    Java抽象类和抽象方法

    在深入探讨Java抽象类与抽象方法之前,我们首先需理解其基本概念以及它们在面向对象编程中的作用。Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一...

    Java 抽象类

    通过学习和熟练掌握Java抽象类,开发者能够更好地设计和组织代码,提高代码的灵活性和可维护性,是成为一名优秀Java程序员的必备技能之一。在实际开发中,合理利用抽象类和接口,可以帮助我们构建出高效、可扩展的...

    Java相关知识点的学习(抽象类)

    "Java抽象类相关知识点" Java抽象类是Java编程语言中的一种特殊类型的类,它们用来定义父类,提供方法和变量的定义,但不能被实例化。抽象类是使用abstract关键字修饰的类,它们不能被实例化,必须被子类继承。 ...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,供其他类去实现或继承。在这个练习中,我们将深入理解这两种机制,并通过实际的代码示例和注释来加深理解。 首先,让我们讨论...

    java保留字、关键字

    1. `abstract`:用于声明抽象类或抽象方法。 2. `boolean`:数据类型,表示布尔值,只有两个值:`true`和`false`,并非关键字。 3. `break`:跳出当前循环或者switch语句。 4. `byte`:数据类型,表示8位二进制整数...

    Java中抽象类使用.pdf

    abstract 关键字是定义抽象类和抽象方法的关键字,它可以帮助开发者更好地理解和使用抽象类。 在 Java 中,抽象类和抽象方法的使用非常广泛,它们是 Java 编程语言的基本组成部分。通过使用抽象类和抽象方法,...

    Java关键字分类解释

    - **abstract/final/native/synchronized**: `abstract`关键字用于声明抽象类或抽象方法;`final`关键字用于声明不可变类、方法或变量;`native`用于声明本地方法;`synchronized`用于同步操作,确保线程安全。 ###...

    abstract抽象类

    在Java编程语言中,`abstract`关键字用于定义抽象类(abstract class),这是一个非常重要的概念,它为多态性提供了基础。抽象类是不能被实例化的,它们的主要目的是作为其他类的基类,提供一个公共的接口或者部分...

    java 抽象类及接口

    首先,抽象类是一种特殊的类,它使用`abstract`关键字进行标识。抽象类的主要目的是作为其他类的模板或基础,它不能被直接实例化。抽象类可以包含抽象方法和非抽象方法。抽象方法是只有声明而没有具体实现的方法,...

    Java中抽象类的学习总结

    抽象类同样使用`abstract`关键字修饰。 - **实例化限制**: 抽象类本身不能被实例化,即不能使用`new`关键字创建抽象类的对象。 - **子类实现**: 如果一个子类继承自抽象类,则必须实现父类中的所有抽象方法;如果...

    Java抽象类和接口相关操作源码.rar

    在这个“Java抽象类和接口相关操作源码”压缩包中,你可能会找到一系列的实例代码,帮助初学者更好地理解和运用这两种特性。 **抽象类(Abstract Class)** 抽象类在Java中是一种不能被实例化的类,它主要用于被...

    Java final static abstract关键字概述

    1. **定义**:当一个类包含一个或多个抽象方法(没有方法体的方法),那么该类必须被声明为抽象类,使用`abstract`关键字。 2. **包含具体方法**:抽象类可以拥有具体方法,即带有方法体的方法。 3. **无抽象方法**...

    Java抽象类和接口和继承之间关系

    "Java抽象类和接口和继承之间关系" Java抽象类和接口是两种不同的概念,它们之间存在着继承关系。在Java中,抽象类(abstract class)和接口(interface)都是用来描述对象的行为和状态的,但它们之间有着明显的...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    Java中的`final`关键字、抽象类和接口是面向对象编程中的核心概念,它们共同构建了类的层次结构和多态性。以下是对这些概念的详细解释: 1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能...

    java 抽象类与接口的区别

    当一个类包含至少一个抽象方法时,该类必须声明为抽象类,用`abstract`关键字标识。 接口则是一个完全抽象的类型,它只包含常量定义和抽象方法,不包含任何实现。接口用`interface`关键字声明,它的所有方法默认都...

    Java抽象类 一篇文章详解

    Java抽象类是面向对象编程中的一个重要概念,它在Java编程语言中扮演着核心角色。本文将深入探讨Java抽象类的概念、特点、用途以及如何创建和使用它们。 抽象类是一种特殊的类,不能被实例化,其主要目的是为了被...

Global site tag (gtag.js) - Google Analytics