3.20~~~
package 包名;
class 类名 extends 父类 implements 接口名{
成员变量;
构造方法;
成员方法;
}
实现接口vs继承类
java继承是单继承,也就是一个类做多只能有一个父类,这种单继承的机制可保证类的纯洁性,比c++多继承机制简洁。
但是不可以否认,对子类功能的扩展有一定影响。所以我们认为:
- 实现接口可以看做是对继承的一种补充
- 实现接口可在不打牌继承关系的前提下,对某个类的功能扩展,非常灵活。(继承是层级式的,金字塔)
接口可以弥补单继承缺点,相当于实现了多继承
package com.test;
public class demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
interface Fish
{
public void swimming();
}
interface Bird
{
public void fly();
}
class Monkey
{
int name;
//跳
public void jump()
{
System.out.println("猴子会跳");
}
}
class LittleMonkey extends Monkey implements Fish,Bird
{
public void swimming() {
// TODO Auto-generated method stub
}
public void fly() {
// TODO Auto-generated method stub
}
}
接口实现多态:carshop案例。
前期绑定:编译确定类型
后期绑定:运行时确定类型
final 可以修饰变量或者方法
需求:
- 当不希望父类的某个方法被子类覆盖时,可以用final关键字修饰
class Aaa{ //给方法用final修饰,则表示不可以被修改,不可被覆盖 int a; final float rate=3.1415926f; final public void sendMes() { System.out.println("send aaa"); } } class Bbb extends Aaa { public Bbb() { a++; rate=rate+1;//错 } //public void sendMes() //{ // System.out.println("send bbb"); //} }
- 当不希望类的某个变量的值被修改,可以用final修饰(如果一个变量是final,则必须赋初值)
- 当不希望类被继承时,用final。 final修饰类,则表示类不能被继承。final class Aaa
注意事项:
- final修饰的变量又叫常量,一般用xx_xx_xx命名
- final修饰的变量在定义时,必须赋值,并且以后不能再赋值
什么时候用
- 因为安全考虑,类的某个方法不允许修改
- 类不会被其它的类继承
- 某些变量值是固定不变的,比如圆周率3.1415926
基础知识截止~~~蛮简单的,难的在后面