版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_25136209/article/details/54809954
这个是java面对对象3大特征之一
package forDemo;
public class DuotaiDemo {
static abstract class machine{
public abstract void use();
public void other(){
System.out.println("我是插电的");//事实证明抽象的类中能有非抽象的方法
}
}
static class Tv extends machine{
@Override
public void use() {
System.out.println("看电视");
}
}
static class Playgame extends machine{
@Override
public void use() {
System.out.println("玩游戏");
}
public void other(){
System.out.println("我是太阳能的");
}
public void cost(){
System.out.println("我花了5K");
}
}
public static void aaa1(machine m){
if (m instanceof Tv) {//当有“多个”子类中有父类共同方法的时候,父类引用指向子类对象时,需要用instanceof来判断这个引用到底是指向那个子类的
m=new Tv();
m.use();
}else if (m instanceof Playgame) {//并且是当子类有自己的独特的方法时才这样写。
m=new Playgame();
m.use();
m.other();
((Playgame) m).cost();
}
}
public static void main(String[] args) {
/*
Playgame pg=new Playgame();
aaa1(pg);
Tv tv=new Tv();
aaa1(tv);*/
aaa1(new Playgame());
aaa1(new Tv());
}
}
自己学安卓的路线当时只学了java中的方法,就开搞安卓了,其实这样也能行,到后面发现东西不够用了再来补java的基础会发现学的很快