java程序设计学习第十一天
(学习多态性)
/*
*
- 代码中体现多态: 父类应用指向子类对象
- 格式
父类名称 对象名 =new 子类名称();
*/
public class glc {
public static void main(String[] args) {
//类型 变量名称=常量
//int num=5;
//类型 变量名称 =new 类型();
Fu fu =new Fu();
fu.method();
fu.methodFu();
System.out.println("");
Zi zi =new Zi();
zi.method();
zi.methodFu();
zi.methodZi();
System.out.println("======");
//类似于强制类型转换
//double num=new 5f
Fu obj=new Zi();
obj.method();//子类方法
obj.methodFu();
//obj.methodZi();
}
}
/*
*
- 访问成员变量的两种方式
- 1、直接通过对象名称访问
- 2、通过成员方法间接访问
*/
public class glc {
public static void main(String[] args) {
//直接访问 看等号左边是谁,就用谁。没有则往上找。
Fu obj=new Zi();
System.out.println(obj.num);//父 10
//System.out.println(obj.age);错误用法
System.out.println("=======");
//成员方法访问,看该方法属于谁,就用谁
obj.showNum();
}
}
/*
*
- 1、成员方法
new 的是谁,就先用谁 - 2、对比
成员变量 编译看左边 运行还看左边
成员方法 编译看左边 运行看右边
*/
public class glc1 {
public static void main(String[] args) {
Fu obj=new Zi();
obj.method();
//obj.methodFu();
obj.methodFu();
}
}
public class glc {
public static void main(String[] args) {
//类似于 隐式类型转换
Animal animal=new Cat();
animal.eat();
//animal.catchMouse();
//向下类型转换 由父类型 转换成子类型 还原
Cat cat=(Cat) animal;
cat.catchMouse();
//java.lang.ClasscastException
//Dog dog=(Dog)animal;
}
}
//final 修饰方法的时候,该方法就是最终方法,不能被覆盖重写
public abstract class Fu {
public final void method() {
System.out.println(“舒工坊”);
}
public abstract /final/ void methodAbs();
}
/*
*
- final
1、用来修饰一个类
2、用来修饰一个方法
3、用来修饰一个局部变量
4、用来修饰一个成员变量
*/
public class glc {
public static void main(String[] args) {
int num1=10;
System.out.println(num1);
num1=100;
System.out.println(num1);
final int num2=200;
System.out.println(num2);
//num2=2000 错误写法
final int num3;
num3=300;
System.out.println(num3);
System.out.println("");
Student stu1 =new Student(“乱叫闪电发货”);
System.out.println(stu1);
System.out.println(stu1.getName());
stu1=new Student (“爱上飞机”);
System.out.println(stu1);
System.out.println(stu1.getName());
System.out.println("=");
final Student stu2=new Student(“第三节课”);
System.out.println(stu2);
System.out.println(stu2.getName());
stu2.setName(“撒地方”);
System.out.println(stu2);
System.out.println(stu2.getName());
System.out.println("=====");
Person person =new Person(“格外”);
System.out.println(person.getName());
}
}
/*
*
- 被final修饰的类 是一个最终的类 (太监类) 没有儿子
- 如果一个类被final修饰 所有的成员方法都无法进行覆盖重写
/
public final class MyClass {
public void method() {
System.out.println(“方法执行”);
}
}
public class Zi extends Fu {
/@Override
public void method() {
System.out.println();
}*/
public void methodAbs() {
}
}