마인드 매핑
다중 상태 구현
public class MyTest3 {
public static void main(String[] args) {
Fu fu = new Zi();
System.out.println(fu.num);//100
fu.show(); //zi show
Zi zi= (Zi) fu;//向下转型
System.out.println(zi.num);//10
zi.mehtod(); //子类特有的方法
}
}
class Fu{
int num=100;
public void show(){
System.out.println("fu show");
}
}
class Zi extends Fu{
int num=10;
@Override
public void show() {
System.out.println("zi show");
}
public void mehtod(){
System.out.println("子类特有的方法");
}
}
다중 상태 메모리도
II 추상 클래스
案例演示
假如我们在开发一个系统时需要对员工(Employee) 类进行设计,员工包含3个属性:姓名、工号以及工资(salary)。
经理(Manager) 也是员工,除了含有员工的属性外,另为还有一个奖金(bonus) 属性。
然后定义工作的方法.
请使用继承的思想设计出员工类和经理类。
public class Test {
public static void main(String[] args) {
Employee e = new Manager();
e.name = "托尼";
e.id = 111;
e.salary = 88888;
((Manager) e).bonus = 29999;
System.out.println(e.id + "==" + e.name + "==" + e.salary);
e.work();
System.out.println("-------------------");
e = new Coder();
e.name = "华安";
e.id = 7527;
e.salary = 12000;
System.out.println(e.id + "==" + e.name + "==" + e.salary);
e.work();
}
}
abstract class Employee {
String name;
int id;
double salary;
public abstract void work();
}
class Manager extends Employee {
double bonus;
@Override
public void work() {
System.out.println("经理写一写需求文档");
}
}
class Coder extends Employee {
@Override
public void work() {
System.out.println("写代码");
}
}
输出: 111==托尼==88888.0
经理写一写需求文档
-------------------
7527==华安==12000.0
写代码
셋째, 인터페이스
public class MyTest {
public static void main(String[] args) {
//接口:跟类同级别,接口经常用来定义一些额外的扩展功能,或者定义一些规范。
Cat cat = new Cat();
Animal an=cat;
an.eat();
an.sleep();
((Cat) an).catchMouse();
System.out.println("-----------------");
MyIntereface myIntereface=cat;
myIntereface.fire();
myIntereface.math();
System.out.println("------------------");
Dog dog = new Dog();
Animal an2=dog;
an2.sleep();
an2.eat();
((Dog) an2).lookDoor();
MyIntereface myIntereface1=dog;
myIntereface1.math();
myIntereface1.math();
}
}
abstract class Animal {
public abstract void eat();
public abstract void sleep();
}
//定义个别动物的特有方法
public interface MyIntereface {
void fire();
void math();
}
class Cat extends Animal implements MyIntereface{
@Override
public void eat() {
System.out.println("猫吃鱼");
}
@Override
public void sleep() {
System.out.println("猫白天睡觉");
}
public void catchMouse() {
System.out.println("猫抓老鼠");
}
@Override
public void fire() {
System.out.println("猫经过不断的学习会钻火圈了");
}
@Override
public void math() {
System.out.println("猫经过练习,会做算术了");
}
}
class Dog extends Animal implements MyIntereface{
@Override
public void eat() {
System.out.println("狗吃骨头");
}
@Override
public void sleep() {
System.out.println("狗睡觉");
}
public void lookDoor(){
System.out.println("狗看门");
}
@Override
public void fire() {
System.out.println("狗学会了钻火圈");
}
@Override
public void math() {
System.out.println("狗学会了做算术");
}
}