Java面向对象特性入门级demo
一、需求分析
实现一个哪国人说哪国话的功能
二、项目目录结构
三、show me your code
父类Person:
Q:为什么要设计抽象类(abstract关键字)?
A:当父类知道子类应该包含什么方法,但不知道子类将如何实现,所以先将共性取出定义成一个抽象方法,方便子类继承后重写
package com.SpeakDemo;
//abstract关键字:设计抽象类与抽象方法
abstract class Person {
public abstract void say();
}子类Chinese:
package com.SpeakDemo;
public class Chinese extends Person{
public void say() {
System.out.println("你可以说");
}
}子类Usa
package com.SpeakDemo;
public class Usa extends Person{
public void say() {
System.out.println("u can talk");
}
}测试main()
package com.SpeakDemo;
public class Test {
public static void main(String args[]) {
Person c = new Chinese(); //产生Person类的变量c,并在内存堆区产生一个Chinese对象,赋值
//尽管c属于父类Person,但是它运行的是Chinese类的say方法。
//这是由于在编译阶段,只是检查参数的引用类型;但是在运行时,JVM指定对象的类型并且运行该对象的方法。
Person u = new Usa();
//Chinses c = new Chinses(); //这样写也可以,直接产生子类的变量
//Usa u = new Usa();
c.say();
u.say();
}
}