继承
1,提高代码复用性
2,让类与类之间产生关系,有了关系,才会有多态的特性
3,必须是类与类之间有所属关系才可以继承。看父类的所有方法属性在子类中是否都必须具备。
Java只支持单继承,不支持多继承,多继承容易带来安全隐患。
使用库的时候:
查阅父类的方法,使用子类创建对象,因为父类可能不能创建对象,子类的功能最全。
class Zx
{
public static void main(String []arr)
{
Zi a = new Zi();
System.out.println(a.num); //会打印5
a.show();//会打印4
}
}
class Fu
{
int num = 4;
void show()
{
System.out.println(4); //super 换成 this 和空 都会打印4
}
}
class Zi extends Fu
{
int num=5;
void show()
{
System.out.println(4); //super 换成 this 和空 都会打印4
}
}
super:代表父类对象的引用
如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量用this. 子类要访问父类中的同名变量,用super
函数的覆盖/重写
当父子类中有同名函数时,调用子类对象的函数,会执行子类的函数,父类的函数被覆盖。
以下程序会打印4
class Zx
{
public static void main(String []arr)
{
Zi a = new Zi();
a.show();
}
}
class Fu
{
int num = 4;
void show()
{
System.out.println(5);
}
}
class Zi extends Fu
{
int num=5;
void show()
{
System.out.println(4);
}
}
final:
最终的类不可以被继承,为了避免被子类覆盖功能。
3,被final修饰的方法不可以被覆盖
4,被final修饰的变量是一个常量只能赋值一次。
接口和抽象类没懂,找本书看看
abstract:抽像
1,抽象方法一定定义在抽象类中
2,抽象方法和抽象类被abstract修饰
3,抽象类不可以用new创建对象。
3,抽象类中的方法要被使用,抽象父类必须由子类复写所有抽象方法后后,建立对象使用
作用不懂?
抽象就是有点模糊的意思,还没确定好的意思。 比如我想买件衣服,我只是想买衣服而已,但还没确定是买白色的衣服还是蓝色的衣服,也还没确定是要买短袖还是长袖的衣服。 用到java上,就比方,我要定义一个方法和类。但还没确定怎么去实现它的具体一点的子方法,那我就可以用抽象类或接口。
接口:
初期理解:可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以提供接口的形式来表示
interface
定义格式特点:
1,接口中常见定义:常量,抽象方法。
2,就看中成员都有固定修饰符。
常量:public static final int a;//int a 也可以,会自动给补上,但是最好要写
方法:public abstract a(){};//同上
接口中的成员都是public的
例如:
class Zx
{
public static void main(String []arr)
{
}
}
interface Inter
{
public static final int NUM = 3;
public abstract void show();
}
class Test implements Inter
{
public void show(){}
}