java课时六_面向对象(3)

禁止子类重写
在方法(对象方法)前加上final。

针对final讨论

final意为到此为止
1、类:

public final class ClassName{...};//表示该类不允许继承
public abstract class ClassName{...};//鼓励继承该类

2、变量:

final int x;//定义常量
public static final double PI=3.14159;
double static final Point CPOINT=new Point(2,3);//永远指向一个对象,但对象内部的值仍可以改变

讨论参数传递

java只有值传递

public void swap(int a,int b);//对实参无影响
public void swap(Point p1, Point p2);//对实参无影响
public class Value{
int x;
int y;
}
public static void swap(Value v){
	int t=v.x;
	v.x=x.y;
	v.y=t;
}//x与y的值交换,但实参地址仍未改变

方法重载

void g(object o){...};
void g(Point p){...};
g(NULL);//报错
g((object)null);//不报错

接口

接口关键字:interface
接口中自动定义为常量或抽象方法即public static final或public abstract
实现接口关键字:implements
接口特性:
1、接口中常量默认为public static final,并且也只能是public static final。
2、接口中只能定义抽象方法,而且这些方法默认为public abstract ,并且也只能是public abstract。
3、接口可以继承其他接口,并添加新的属性和抽象方法。
4、在接口中声明方法时,不可以使用其他修饰符,如nativa,static,final,private,protected等。
5、java中不允许类的多继承,但允许接口的多继承。
6、不允许创建接口实例,但允许定义接口类型的引用变量。改变量引用实现了该接口的类的实例。
7、一个类只能继承另外一个类,但能同时实现多个接口,并且重写的方法必须声明为public。
举例:用接口实现栈

public interface Stackable{
	public void push(Object o);
	public Object pop();
}
public class StackA implements Stackable{
...;
}//实现接口
public class StackUser{//只能针对接口写
	private Stackable st=null;
	public void process(){
		String msg=" ";
		st.push(msg);
	}
	//方法一:构造器
	public StackUser(Stackable st){
		this.st=st;
	}
	//方法二,set
	public void SetStack(Stackable st){
		this.st=st;	
	}
}
public class Entry{
	public static void main(String []args){
		StackA sta=new StackA();
		StackUser=new StackUser(sta);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

K_K_Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值