1,抽象类和接口
抽象类:当父类方法不能满足大多数子类需求时,需要把方法变成抽象方法,抽象方法不能在普通类中,可以放在抽象类中
1),抽象方法不能在普通类中
2),抽象类中可以有普通方法
3),抽象类中可以有构造方法
4),不能直接创建对象,间接可以
接口:全是抽象方法的抽象类是接口
1),抽象类中不可以有普通方法
2),抽象类中不可以有构造方法
3),不能实例化
4),属性默认public static final 修饰
2,String(不可变) StringBuffer(线程安全,可变的,慢) StringBuilder(非线程安全,可变的,快)
3,包:
package:安全 分类 要求:网址倒叙 com.baidu.www
import:导包 java.lang 不需要导入
4,implements extends
类 implements 接口
类 extends 类
接口 extends 接口
extends:单继承
implements:多实现
package zjx;
public interface Vehicle {
public void NoOfWheels();
}
public class Car extends Vehicle {
@Override
public void NoOfWheels() {
System.out.println("四个轮子");
}
}
public class Motorbike extends Vehicle {
@Override
public void NoOfWheels() {
System.out.println("双轮车");
}
}
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) {
Motorbike mb = new Motorbike();
mb.NoOfWheels();
Car c = new Car();
c.NoOfWheels();
}
}
双轮车
四个轮子
package zjx;
public interface Vehicle {
public void start(String name);
public void stop(String name);
}
public class Bus implements Vehicle {
@Override
public void start(String name) {
System.out.println(name+"启动");
}
@Override
public void stop(String name) {
System.out.println(name+"停止");
}
}
public class Bike implements Vehicle {
@Override
public void start(String name) {
System.out.println(name+"启动");
}
@Override
public void stop(String name) {
System.out.println(name+"停止");
}
}
package zjx;
public class interfaceDemo {
/**
* @param args
*/
public static void main(String[] args) {
Bike b = new Bike();
b.start("自行车");
b.stop("自行车");
Bus bu = new Bus();
bu.start("汽车");
bu.stop("汽车");
}
}
自行车启动
自行车停止
汽车启动
汽车停止