对象转型-java的笔记小结
对象转型
关于引用对象的成员调用
在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("用筷子吃饭");
}
}