6-5抽象类和抽象方法的使用

2023-11-17

package com.atguigu.java;
/*
 * abstract 关键字的使用
 * 1.abstract 抽象的
 * 2.abstract 可以用来修饰的结构: 类, 方法
 * 3.abstract 修饰类  抽象类
 * 		此类不能实例化
 * 		抽象类中一定有构造器便于子类实例化的时候调用(涉及,子类对象实例化的过程)
 * 		开发中都会提供抽象类的子类让子类对象进行实例化
 * 		抽象类可以含有不是抽象方法
 * 
 * 4.abstract 修饰方法
 * 		只有方法的声明,没有方法体
 * 		包含抽象方法的类一定是抽象类,反之抽象类中可以没有抽象方法
 * 		若子类重写了父类中所有的抽象方法后,次子类可以实例化
 * 		
 */
public class AbstractTest {
	public static void main(String[] args) {
//		Person p1 = new Person();
//		p1.eat();
	}
	
}
abstract class Person{
	String name;
	int age;
	public Person() {
		
	}
	
	
	public Person(String name,int age) {
		this.name = name;
		this.age = age;
	}
	
	
	public void eat() {
		System.out.println("nice good");
	}
	//抽象方法
	public abstract void walk();
}

class Student extends Person{
	public Student(String name,int age) {
		super(name,age);
	}
	public Student() {
		
	}
	public void walk() {
		System.out.println("eat nuitruion food");
	}
}
package com.atguigu.java;
/*
 * abstract使用上的注意点
 * 1.abstract不能用来修饰属性,构造器等
 * 2.abstract 不能用来修饰私有方法,静态方法,final的方法  final的类  主要是因为不能继承
 * 一个抽象类中可以定义构造器吗
 * 可以有可能是继承父类
 * 
 */
public class AbstractTest1 {
	
}

package com.atguigu.java;

/*

  • 抽象类的匿名子类

*/
public class PersonTest {
public static void main(String[] args) {

method(new Student());//匿名对象

Worker worker = new Worker();
method1(worker);
method1(new Worker());//非匿名的类匿名的对象

//创建了一个匿名子类的对象;p
Person p = new Person() {
	@Override
	public void walk() {
		// TODO Auto-generated method stub
		System.out.println("walk with happy");
	}
	
};
method1(p);
//创建匿名子类的匿名对象
method1(new Person(){

	@Override
	public void walk() {
		// TODO Auto-generated method stub
		
	}
	
});

}

public static void method1(Person p) {
	p.eat();
	p.walk();
	
}

public static void method(Student s) {
	
}

}

class Worker extends Person{
@Override
public void eat() {

}

@Override
public void walk() {
	// TODO Auto-generated method stub
	
}

}





























本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

6-5抽象类和抽象方法的使用 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • Java中有没有一种方法可以通过名称实例化一个类?

    我正在寻找问题 从字符串名称实例化一个类 https stackoverflow com questions 9854900 instantiate an class from its string name它描述了如何在有名称的情况下实例
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • 谷歌应用程序引擎会话

    什么是java应用程序引擎 默认会话超时 如果我们将会话超时设置为非常非常长的时间 会不会产生不良影响 因为谷歌应用程序引擎会话默认情况下仅存储在数据存储中 就像facebook一样 每次访问该页面时 会话仍然永远存在 默认会话超时设置为
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • Opencv Java 灰度

    我编写了以下程序 尝试从彩色转换为灰度 Mat newImage Imgcodecs imread q1 jpg Mat image new Mat new Size newImage cols newImage rows CvType C
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐