课堂笔记

继承:extends
语法:子类的名字extends父类的名字
父类的名字:
package edu.xucd;

public class Uncle {
private String name;
private int age;

public void faHongbao(){
    System.out.println("舅舅发红包");
}

}

子类一:package edu.xucd;

public class UncleOne extends Uncle {
public void chouyan() {
System.out.println("大舅喜欢抽烟");
}
public void faHongbao(){
System.out.println("大舅家中落到,发不起红包");
}

}
子类二:package edu.xucd;

public class UncleTwo extends Uncle {
public void hejiu(){
System.out.println("二舅喜欢喝酒");
}
//方法的重写 复写 覆盖
public void faHongbao(){
System.out.println("二舅不仅发红包,还送茅台");
}
}

1.子类能够继承到父类所有的不是私有的属性和方法
2.子类能够复写父类的方法,如果没有复写,调用的是父类的方法,子类一旦复写,优先调用复写后的的子类的方法
3.除了复写,子类可以扩充父类没有的方法
优点;
1.实现代码的复用
2有利于子类代码的扩展
多重继承
package edu.xucd;

public class UncleOneSon extends UncleOne {
public void faHongbao(){
System.out.println("大舅儿子厉害了,接着发红包");
}
}
类继承的加载顺序
先加载父类,再加载子类
祖先类的构造方法最先执行,祖先类先被创建出来,其次是父类,最后是子类
在构造方法当中会隐性的调用super()超类的无参构造方法
final 最终的最后的
被final修饰的变量值不可以被改写
1.final修饰的变量值不能发生修改PI=3.1415修饰基本数据类型;修改引用数据类型,例如数组,数组中的值可以发生修改,但是数组不能指向新的空间
2.final修饰的方法不能被重写
3.final修饰的类不能能被继承
多态
一个父类有多个子类
把子类的对象赋值给父类的过程叫做向上转型,把父类的对象赋值给子类的过程叫做向下转型
语法:
正常语法:
类名 对象名=new子类的类名();
向下转型:
子类类型 对象名=(子类类型)父类的对象
//向上转型

    Uncle uncleOne1=new UncleOne();
    uncleOne1.faHongbao();

    Uncle uncleTwo2=new UncleTwo();
    uncleTwo2.faHongbao();
    //向下转型
    Uncle uncle=new Uncle();
    UncleOne temp=(UncleOne) uncle;

instanceof
判断对象是否是一个类的实例(具体的对象)

public class Demo02 {
public static void main(String[] args) {
UncleOne dajiu = new UncleOne();
ganHuo(dajiu);

    UncleTwo erjiu = new UncleTwo();
    ganHuo(erjiu);
}


public static void ganHuo(Uncle uncle) {
    if (uncle instanceof UncleOne) {
        System.out.println("出门外干活");
    } else if (uncle instanceof UncleTwo) {
        System.out.println("在室内干活");
    } else {
        System.out.println("传入的不是九九,老太太没办法指使");
    }
}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容