继承,多态,抽象,接口
继承
super和this
this指代当前类的当前对象的属性值;super指代父类的属性
当父类的引用指向子类的对象时。
- 能执行哪些方法看的是引用的类(左边)
- 当有重写时,执行哪一个方法看的是对象的类型(右边)
多态
- 多态是方法的多态,属性没有多态。
- 父类和子类是有联系的。 ClassCastException
- 存在条件:方法重写。另外注意:
- static 方法,属于类,不属于实例。
- final 方法不允许被重写。
- private 方法也不允许重写。
instanceof 关键字
- 作用:(类型转换)引用类型,判断一个对象是什么类型。
抽象,接口
PS:
- 类只有单继承,但是接口可以多继承。
- 接口不能被实例化。(但是可以被匿名使用)
- 必须重写接口中的方法
- 接口中的所有定义都是抽象的,默认省略public abstract。
- 接口中默认的属性都是static的。
public interface Gucci {
// 下面两种定义方法是等价的
// void run();
// int age = 99;
public static final int age = 99;
public abstract void run();
}
public static void main(String args[]) {
// 匿名的方式调用一个类中的方法
new Apple().eat();
// 匿名的方式调用一个接口中的方法
Person person = new Person(){
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println("i m sleeping");
}
};
person.sleep();
}
///////////////////////////////////
//定义一个类
class Apple{
public void eat() {
System.out.println("i m eatting apple");
}
}
//定义一个接口
interface Person{
void sleep();
}
普通类 | 抽象类 | 接口 |
---|---|---|
具体实现 | 具体实现 +规范(抽象方法) | 规范 |
extends | extends | inplements |
注意点:
- 抽象类不能new,它只能靠子类去实现,相当于是一个约束而已。
- 抽象类中可以写普通的方法
- 抽象方法必须在抽象类中。
抽象方法
只有方法的名字,没有方法的实现。
内部类
包括:成员内部类,静态内部类,局部内部类
即,在类中的内部类,类中的static内部类,方法中的局部内部类。
PS:
- 一个java类中可以有多个class,但是只能有一个Public的class。
posted on 2022-11-27 19:19 chillmusic 阅读(21) 评论(0) 编辑 收藏 举报