java 第十天 面向对象(高级篇之final与抽象类)
来源:互联网 发布:纺织erp软件 编辑:程序博客网 时间:2024/05/21 09:01
final关键字:要点
1、使用final声明的类不能有子类。
2、使用final声明的方法不能被子类所覆写。
3、使用final声明的变量即成为常量,常量不可以修改。
在final声明变量时,要求全部的字母大写,如INFO。如果一个程序中的变量使用public static final声明,则此变量将称为全局变量;如public static final Sting INFO="sad";
抽象类的基本概念:
1、包含一个抽象方法的类必须是抽象类。
2、抽象类和抽象方法都要使用abstract关键字声明。
3、抽象方法只需声明而不需要实现。
4、抽象类必须被子继承,子类(如果不是抽象类)必须覆写抽象类中的全部抽象方法。
两个小问题:
①、一个抽象类可以使用final关键字声明吗?
答:不能,如果一个类用final声明,则此类不能被子类继承,而抽象类又必须被子类覆写。
②、一个抽象类可以定义构造方法吗?
答:可以,因为抽象类依然使用的是类的继承关系,而抽象类中也存在各个属性,所以子类在实例化之前必须先要对父类进行实例化。
注意:抽象方法不要使用private声明。
在使用abstract关键字修饰抽象方法时不能使用private修饰,因为抽象方法必须被子类覆写,而如果使用了private声明,则子类无法覆写。
小例子
package Chapter6;
public class Demo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Student a = new Student("Nick", 21, "Harvard");
System.out.println(a.getInfo());
}
}
abstract class Person {
private String name;
private int age;
public Person(String name, int age) {
this.setName(name);
this.setAge(age);
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public abstract String getInfo();
}
class Student extends Person {
private String school;
public void setSchool(String school) {
this.school = school;
}
public String getSchool() {
return this.school;
}
public Student(String name, int age, String school) {
super(name, age);
this.setSchool(school);
// TODO Auto-generated constructor stub
}
@Override
public String getInfo() {
// TODO Auto-generated method stub
return "name:" + super.getName() + " age:" + super.getAge()
+ " school:" + this.getSchool();
}
}
- java 第十天 面向对象(高级篇之final与抽象类)
- Java-面向对象(高级篇)--抽象类的基本概念
- 面向对象(高级篇之抽象类与接口的应用)
- Java-面向对象(高级篇)--抽象类与接口的应用
- Java面向对象编程(3)--抽象类,接口,final
- Java面向对象编程(3)--抽象类,接口,final
- Java面向对象高级--抽象类与接口的应用
- java 第十一天 面向对象(高级篇之接口、对象的多态性,instanceof)
- Java-面向对象(高级篇)--final关键字
- Java基础(一):Java面向对象、面向对象封装、抽象类、接口、static、final
- Java基础(一):Java面向对象、面向对象封装、抽象类、接口、static、final
- 面向对象(高级)抽象类与接口的应用
- 面向对象(高级)抽象类与接口的应用
- Java基础07天 学习笔记_面向对象(继承,final关键字,抽象类,接口)
- 18天Java学习---15.面向对象编程10-Java中final关键字,抽象类与接口
- Java重修之路(九)面向对象之final关键字,抽象类(abstract),接口(interface)
- 5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- 数习算法的网站
- hdu 1698 线段树-成段更新
- Android学习笔记(三)模拟器的搭建
- 22. 微软面试题:左旋字符串
- 学习笔记 --- LINUX内核里面的IS_ERR宏解析
- java 第十天 面向对象(高级篇之final与抽象类)
- iOS UITableViewCell重用问题
- Jdk1.6新特性
- js map
- java中的类!
- ThinkPHP学习(三)配置PHP5支持MySQL,连接MySQL数据库
- ORACLE 日期相关函数
- 批处理判断变量值是否为空的终极方法
- 如何调试makefile变量