对象转型和抽象函数-java的笔记小结

本文深入探讨Java中抽象类的定义与使用,包括抽象函数的实现方式,以及对象转型的概念和引用对象成员调用的规则。通过实例解析,帮助读者理解抽象类如何通过继承和复写实现多态性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象转型

关于引用对象的成员调用

在Java中,一个引用能够调用哪些成员(函数和变量),取决于这个引用的类型。
即使转型之后,也仍取决于原来的原来的类型。

抽象函数

下代码创建了一个Person类

//使用了抽象函数 那么该类也必须是抽象类,但若未使用抽象函数 该类也可为抽象类   同时 抽象类无法生成对象 只能被继承
abstract class Person{
	String name;
	int age;
	
	void introduce(){
		System.out.println("我的名字是:" + name + ",我的年龄是:" + age);
	}
	
	abstract void eat();
}
class Test{
	public static void main(String args[]){
	//抽象类无法生成对象 后面代码无意义 会报错
		Person p = new Person();
		Person.introduce();
	}
}

//抽象类只能继承 且继承类也只能是抽象类 或者 也可以采用复写的方法

//继承
abstract class Chinese extends Person{
	
}
//复写
class Chinese extends Person{
	void eat(){
		System.out.println("用筷子吃饭");
	}
}

主函数

class TestPerson{
	public static void main(String args[]){
		Person p = new Chinese();
		p.eat();
	}
}

同时抽象类也可以拥有构造函数 被子类调用

//父类抽象类
abstract class Person{
	String name;
	int age;
	Person(){
		System.out.println("Person的构造函数");
	}
	Person(Sting name,int age){
		this name = name;
		this age = age;
	}
	void introduce(){
		System.out.println("我的名字是:" + name + ",我的年龄是:" + age);
	}
	
	abstract void eat();
}
//子类调用父类(抽象类)的构造函数
class Chinese extends Person{
	String address;
		Chinese(){
			super();
			System.out.println("Chinese的构造函数");
		}
		Chinese(sting name,int age,string address){
			super(name,age);
			this address = address;
		}
		void eat(){
		System.out.println("用筷子吃饭");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值