父类中的私有方法被子类调用的话,则编译报错
JAVA通过接口和内部类实现多继承
当构造一个对象的时候,系统先构造父类对象,再构造子类对象
静态方法不可被覆盖
如果一个方法前有修饰词private或static,则系统会自动在前面加上final
final并不涉及继承
Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性
Final和abstract永远不会同时出现
如果一个类中有一个抽象方法,那么这个类一定为一个抽象类
接口是一种特殊的抽象类,类必须实现接口中的方法,否则其为一抽象类
Object是JAVA体系中所有类的父类(直接父类或者间接父类)
Animal a=new Dog();对象a的编译时类型为Animal,运行时类型为dog
字符串类为JAVA中的特殊类,String中为final类,一个字符串的值不可重复
“==”在任何时候都是比较地址,这种比较永远不会被覆盖
代码:
public class Animal {
private Stringname;
public Animal() {
this.name =this.getClass().getSimpleName();
}
public static voidmain(String[] args)
{
Animal animal =new Animal();
System.out.println(animal.getName());
}
public StringgetName() {
return name;
}
private StringgetPrivateName(String str) { // 子类不能调用
return str;
}
}
public class Cat extends Animal {
public static voidmain(String[] args)
{
Cat animal = newCat();
System.out.println(animal.getName());
}
}
public class Dog extends Animal {
public static voidmain(String[] args)
{
Dog animal = newDog();
System.out.println(animal.getName());
System.out.println(animal.getName(2));
}
// 多态-重写
public StringgetName() {
return "Dog//";
}
// 多态-重载
public StringgetName(int i) {
return "Dog"+i;
}
}